【发布时间】:2012-07-13 05:22:07
【问题描述】:
我有一个原始动态网站的静态副本。原始网站的网址是这样的:
http://www.example.com/index.php?module=prodreviews&func=showcontent&id=728
但是,由于我现在拥有网站的静态副本,因此所有网址都有 @ 而不是 ?和一个 .htm 扩展名。
所以当前的url格式:http://www.example.com/index.php@module=prodreviews&func=showcontent&id=728.htm
哪些 mod_rewrite 规则可以将对旧 URL 结构(URL 中的“?”且没有 .htm 扩展名)的任何请求重定向到新的 URL 格式?我基本上希望通过旧链接访问我网站的任何人都将被带到正确的页面,即使 URL 格式已更改。
我一直在写一些规则,但没有骰子。
这是我目前所拥有的,但这只会在任何 URL 上自动添加一个 .htm 扩展名。我仍然需要替换任何带有“?”的 URL 请求。在“php”后面加上“@”:
Options +FollowSymlinks Options +Indexes RewriteEngine On RewriteBase /
# add .html file extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.htm -f
RewriteRule ^(.+)$ $1.htm [L]
【问题讨论】:
标签: .htaccess mod-rewrite