我知道这个问题已经发布了很多次,我已经搜索过,但找不到我需要的内容。
我正在我的 htaccess 上添加 seo 友好链接,例如:
Options -MultiViews
RewriteBase /
RewriteRule ^list$ list.php [L]
工作完美,当我尝试添加变量时出现问题,例如我需要 url:pages.php?id=terms 变为:page/terms>
所以我尝试了很多方法但不起作用,这就是我尝试的:
Options +FollowSymLinks
RewriteRule ^list$ list.php [L]
RewriteRule ^page/(.*)/ pages.php?x=$1 [L]
PS:+FollowSymLinks和-MultiViews有什么区别?
最佳答案
添加QSA
标志:
Options +FollowSymLinks -MultiViews
RewriteRule ^list$ list.php [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^page/([^/]+)/?$ pages.php?x=$1 [L,QSA,NC]
-
QSA
(查询字符串追加)标志在添加新查询参数时保留现有查询参数。 - 有关 Apache's content negotiation 的信息.
-
+FollowSymLinks
使 Apache 遵循符号链接(symbolic link)。 -
-MultiViews
make 关闭内容协商
对于 CSS/JS/图像:
- 在 css、js、图像文件中使用绝对路径,而不是相对路径。这意味着您必须确保这些文件的路径以
http://
开头。或斜杠/
. - 或者您可以尝试将其添加到页面标题中:
<base href="/" />
关于apache - 带有 htaccess 的 SEO 友好 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21526341/