0

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

对于像 ' home '、' about-us '、' contact '、' my-result ' 等这样的 slug,它工作正常,但对于像 ' result '、' about ' 这样的一些 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>
4

2 回答 2

0

您可以在 CMS 中解决此问题,以便您重定向到正确的 slug 或为“结果”和“关于”创建页面。否则,您可以在您的 htaccess 文件中执行此操作:

在下面添加RewriteEngine On

RewriteRule ^about$ /about-us [L,R=301]
RewriteRule ^result$ /my-result [L,R=301]
于 2013-09-13T15:02:46.053 回答
0

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

将第一行编辑为:

Options +FollowSymLinks -MultiViews

删除行:

RewriteRule .* $0.php [L]
于 2013-09-19T10:28:31.467 回答