我正在为我的测试服务器使用子域名URL。类似的东西:
我的.htaccess文件中有以下内容:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1
RewriteRule ^about/(.*)$ /about.php?request=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
以上内容适用于生产(非子域)URL集。但它并没有完全削减我的开发盒。例如,如果我输入
http://dev.mysite.com/about
我收到404错误。但是以下附加的.php扩展名可以使用。
http://dev.mysite.com/about.php
我猜这与处理www子域的第一个重写条件有关。如何修改我的.htaccess文件以考虑dev子域?
答案 0 :(得分:1)
您的.htaccess似乎未启用。
通过在.htaccess
上添加相同的垃圾文本并查看是否生成500(内部服务器)错误,验证是否启用了.htaccess
?
要启用 .htaccess
,您的httpd.conf
文件将需要此行:
AllowOverride All
答案 1 :(得分:0)
您需要至少AllowOverride All
或AllowOverride FileInfo
才能使htaccess文件在您的server / vhost配置中运行。 FileInfo适用于mod_rewrite。
此外,请确保已加载mod_rewrite。
您还需要更改此条件:
RewriteCond %{REQUEST_FILENAME}.php -f
为:
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
因为mod_rewrite会识别出about
有一个php文件,所以/about/something
通过了-f
测试,结果是/about/something.php
。