【发布时间】:2015-12-02 12:57:29
【问题描述】:
我注意到我的 url 重写代码只有在我从主页单击页面时才能正常工作。如果我点击另一个页面,它只是不会重写 url。
例子。我从主页单击联系页面。它可以很好地重写为 site.com/page/contact 。但是,如果我从联系页面单击关于我们的页面,而不是将关于我们的页面显示为 site.com/page/about-us,它会显示 site.com/page/page.php?page=about-us。
这是我的 .htaccess 代码
AddDefaultCharset UTF-8
Header unset ETag
FileETag None
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+post\.php\?post=([^\s&]+) [NC]
RewriteRule ^ post/%1? [R=301,L]
RewriteRule ^post/([^/]+)/?$ post.php?post=$1 [L,QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+page\.php\?page=([^\s&]+) [NC]
RewriteRule ^ page/%1? [R=301,L]
RewriteRule ^page/([^/]+)/?$ page.php?page=$1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
我对 url 重写知之甚少,我花了好几个星期才让它工作。请问我写错了什么?谢谢
从主页 site.com/page/page.php?page=about-us 点击的链接,重写为 site.com/page/about-us。
从任何其他已重写其 url 的页面点击的链接,例如从之前点击的 about us 页面,假设我从它点击了联系页面 site.com/page/page.php?page=contact ,它应该重写为 site.com/page/contact ,但它不会重写。
【问题讨论】:
-
contect 是目录吗?或网页,您的联系页面的位置在哪里?
-
包括联系人页面在内的所有页面都在同一个文件夹中
-
我已经添加了点击链接的信息以及来自哪里
标签: php .htaccess mod-rewrite