.htaccess 在核心PHP上重写URL

velaa5lx  于 2023-06-06  发布在  PHP
关注(0)|答案(2)|浏览(187)

我想重写URL从

example.com/file.php?id=yes

example.com/file.php/yes

网站使用PHP核心
我在.htaccess中尝试了下面的代码

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([0-9]+).html /abc.php?id=$1 [QSA,L]
jm81lzqq

jm81lzqq1#

RewriteEngine On
RewriteRule ^file.php/(.*)$ file.php?id=$1 [NC,L]
ar7v8xwq

ar7v8xwq2#

是的,我有,现在我只想重定向example.com/file.php?id=yesexample.com/file.php/yes
为了保持SEO,在更改URL结构后,您可以在.htaccess文件的顶部实现这样的外部重定向:

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteCond %{QUERY_STRING} ^id=(\w+)
RewriteRule ^file\.php$ /$0/%1 [QSD,R=301,L]

$0反向引用包含来自RewriteRule * 模式 * 的完整匹配(即file.php)。%1反向引用(注意%)包含来自前面 CondPatternid URL参数的值。
QSD标志对于 * 丢弃 * 重定向请求中的原始查询字符串是必需的。
请注意,您应该首先使用302(临时)重定向进行测试,以避免潜在的缓存问题。

  • 旁白:*

其实我想这样做,由于化妆品的原因,也使这个搜索引擎友好
虽然,这两个URL之间的SEO方面没有任何区别。事实上,简单地改变URL结构可能会对SEO产生短期的负面影响。

RewriteRule ^([0-9]+).html /abc.php?id=$1 [QSA,L]

这似乎是相反的,与你的预期行动完全不同...
它将 * 内部重写 *(不是“重定向”)/0123456789.html?foo=1的URL到/abc.php?id=0123456789&foo=1

相关问题