htaccess slug 404错误

时间:2013-09-13 12:55:40

标签: php .htaccess mod-rewrite

我正在创建一个php网站,其中页面由slug链接(例如,mysqite.com/slug)。

对于像'主页','关于我们','联系','我的结果'等它工作正常,但对于某些像'结果','关于'这样的错误,显示了404(未找到)错误。我是如何解决这个问题的?

Options +FollowSymLinks

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /institution/http/
RewriteRule departments(|[a-zA-Z0-9_\-/]+)$ department.php?page=$1
RewriteRule stream/(|[a-zA-Z0-9_\-/]+)$ post.php?page=$1
RewriteRule faculty/([a-zA-Z0-9_\-/]+)$ new_post.php?page=$1
RewriteRule ^([a-zA-Z0-9\-\/]+)$ index.php?page=$1

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f
RewriteRule .* $0.php [L]
</IfModule>

2 个答案:

答案 0 :(得分:0)

您可以在CMS中修复此问题,以便重定向到正确的slug或为“result”和“about”创建页面。否则,您可以在htaccess文件中执行此操作:

RewriteEngine On下面添加此内容:

RewriteRule ^about$ /about-us [L,R=301]
RewriteRule ^result$ /my-result [L,R=301]

答案 1 :(得分:0)

您可能已在同一目录中存在 about.php result.php 文件。 slug(s)匹配文件名。如果是这样,请尝试:

将您的第一行编辑为:

Options +FollowSymLinks -MultiViews

删除该行:

RewriteRule .* $0.php [L]