【发布时间】:2015-03-14 02:26:29
【问题描述】:
今天我的 .htaccess 文件有问题。在我的服务器上,我有几个文件夹,每个文件夹分别是下面的网站示例:
服务器结构(全局文件夹)
- my_portfolio
- website_two
- my_website
- example
在“示例”文件夹中,我有那个 .htaccess 文件:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /$1.php [L]
#To remove www header
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
当我打开我的网站地址时,RewriteRule 运行良好,没有“www”并且 .php 扩展名是不可见的,但是当我单击菜单中其他网站的链接时,我会得到如下信息: www.example.com/example/contact。
我的网站地址是 www.example.com,该网站的所有内容都在服务器上的示例文件夹中。我不知道我在哪里或写错了什么。当我尝试继续使用另一个网站重写引擎时,总是给我一个不带 .php 扩展名的链接,但在链接之前添加到文件夹名称。
这是一个很好的例子:
www.example.com/contact.php - normal link without htaccess
example.com/example(folder name where is a website)/contact - now
example.com/contact - should be
【问题讨论】:
标签: php apache .htaccess mod-rewrite url-rewriting