我想重写URL从
example.com/file.php?id=yes
到
example.com/file.php/yes
网站使用PHP核心我在.htaccess中尝试了下面的代码
.htaccess
Options +FollowSymLinks RewriteEngine On RewriteRule ^([0-9]+).html /abc.php?id=$1 [QSA,L]
jm81lzqq1#
RewriteEngine On RewriteRule ^file.php/(.*)$ file.php?id=$1 [NC,L]
ar7v8xwq2#
是的,我有,现在我只想重定向example.com/file.php?id=yes到example.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反向引用(注意%)包含来自前面 CondPattern 的id URL参数的值。QSD标志对于 * 丢弃 * 重定向请求中的原始查询字符串是必需的。请注意,您应该首先使用302(临时)重定向进行测试,以避免潜在的缓存问题。
$0
RewriteRule
file.php
%1
%
id
QSD
其实我想这样做,由于化妆品的原因,也使这个搜索引擎友好虽然,这两个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
/0123456789.html?foo=1
/abc.php?id=0123456789&foo=1
2条答案
按热度按时间jm81lzqq1#
ar7v8xwq2#
是的,我有,现在我只想重定向
example.com/file.php?id=yes
到example.com/file.php/yes
为了保持SEO,在更改URL结构后,您可以在
.htaccess
文件的顶部实现这样的外部重定向:$0
反向引用包含来自RewriteRule
* 模式 * 的完整匹配(即file.php
)。%1
反向引用(注意%
)包含来自前面 CondPattern 的id
URL参数的值。QSD
标志对于 * 丢弃 * 重定向请求中的原始查询字符串是必需的。请注意,您应该首先使用302(临时)重定向进行测试,以避免潜在的缓存问题。
其实我想这样做,由于化妆品的原因,也使这个搜索引擎友好
虽然,这两个URL之间的SEO方面没有任何区别。事实上,简单地改变URL结构可能会对SEO产生短期的负面影响。
这似乎是相反的,与你的预期行动完全不同...
它将 * 内部重写 *(不是“重定向”)
/0123456789.html?foo=1
的URL到/abc.php?id=0123456789&foo=1