我正在创建一个php网站,其中页面由slug链接(例如,mysqite.com/slug)。
对于像'主页','关于我们','联系','我的结果< strong>'等它工作正常,但对于某些像'结果','关于'这样的错误,显示了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>
答案 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]