我有一些关于在 php 中重写 url 的问题要问。
1- www.test.com/index.php?name=123 至 www.test.com/123
2- www.test.com/folder1/index.php?name=123 到 www.test.com/folder1/123/index.php
这是我对数字 1 的编码,但我不知道如何用数字 1 重写数字 2 组合:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?usname=$1 [QSA,L]
当您说“在 php 中重写 url”时,我假设“在 php 中”指的是应用程序的语言,而不是重写/重定向方法 --- 因为您的示例代码由 Apache 指令组成。
下面的规则会将 test.com/folder1/index.php?name=123 形式的 URL 更改为 test.com/folder1/123 形式的“漂亮”URL(我删除了“index.php”以使其均匀)更加人性化)。
-
重定向丑陋的查询 URL,以便用户始终看到“漂亮”的 URL
RewriteCond %{QUERY_STRING} \bname=([^&]+)
RewriteRule ^/?folder1/index\.php$ /folder1/%1 [R=302]
-
告诉服务器如何解释漂亮的 URL
RewriteRule ^/?folder1/([^\/]+)(/index\.php)?$ /folder1/index.php?name=$1 [L]
NOTE:上面的第一条规则使用 302(临时)重定向,因此您的浏览器在测试和调整重定向规则时不会“记住”重定向规则。如果您关心 SEO,请更改[R=302]
to [R=301]
,这是一个永久重定向。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)