[英]Setting Apache HTAccess Rewrite Rules on a Subdomain
我正在为测试服务器使用子域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子域?
看来您的.htaccess没有启用。
验证您是否 .htaccess
启用与否,通过把相同的垃圾文字在你之上.htaccess
,看看它是否产生500(内部服务器)错误或不?
要启用 .htaccess
您的httpd.conf
文件将需要以下行:
AllowOverride All
您至少需要AllowOverride All
或AllowOverride FileInfo
才能使htaccess文件在服务器/ 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
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.