我有以下 URL [1]:
www.domain.com/?search=somequery
我想重定向到[2]
www.domain.com/search/somequery
我在 .htaccess
中使用以下代码:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^search/(.*)$ /?search=$1 [L]
上面的代码工作得很好,因为服务器可以理解这两个 URL:[1] 和 [2]。但是,如果用户访问 [1] URL,我无法弄清楚如何强制重定向到 [2] URL
最佳答案
试试这个
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ /\?search=([^&\ ]+)
RewriteRule ^ search/%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^search/(.*)$ /?search=$1 [L]
关于apache - mod_rewrite - 强制重定向到重写的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30842625/