繁体   English   中英

.htaccess重写= 404页

[英].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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM