[英].htaccess rewrite = 404 page
我想将www.mydomain.com/about.php设为www.mydomain.com/about。
根据一些博客读物,
这是我在httpd.conf中拥有的内容
<Directory "var/www/mydomain">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Allow from all
Order allow, deny
RewriteEngine On
</Directory>
我的.htaccess文件
Order deny,allow
DirectoryIndex index.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
www.mydomain.com/about.php仍然可以使用,但是/ about包含404 URL Not Found页面。
上面的配置有问题吗?
在最后一行中,尝试:
RewriteRule ^(.*)$ $1.php [L]
(注意^和删除的R = 301)
如果它不起作用,请尝试删除.htaccess
文件中的所有先前行。 仅使RewriteEngine On
保持RewriteEngine On
。
您的前两个RewriteRules要求在名称后有一个/作为最后一个字符。 您可能希望使其成为可选:
RewriteRule ^([^/]+)/?$ $1.php
RewriteRule ^([^/]+)/([^/]+)/?$ /$1/$2.php
这可能就是为什么您在第一个重写组中不匹配/ about的原因。 我猜想您正在第二重写组中尝试做一些不同的事情,但尚不清楚是什么(提示:对您正在做的事情发表一两个评论会很有帮助)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.