我正在尝试重写一个网址。我想在浏览器中输入此网址:
localhost/subDir/page-name/value1/value2
然后将 value1 en 值 2 读入查询字符串,如下所示:
localhost/subDir/page-name/?firstArg=value1&secondArg=value2
这是针对WordPress网站。wordpress安装在一个名为"subDir"的子目录中。WordPress页面被称为页面名称"并转到本地主机/子目录/页面名称有效。标准永久链接正常工作,因此已启用mod_rewrite。这是我的 .htacces 文件
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subDir/
RewriteRule page-name/([^/]+)/([^/]+)/? page-name/?firstArg=$1&secondArg=$2 [QSA]
RewriteRule ^index'.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /subDir/index.php [L,QSA]
</IfModule>
# END WordPress
mod_rewrite不
将查询字符串视为用于匹配的 URI 的一部分和重写,应该分开处理。
RewriteCond "%{QUERY_STRING}" "^firstArag=([^=]*)&secondArg=([^=]*)
RewriteRule "/subDir/index.php" "http://localhost/subDir/page-name/%1/%2" [R]
[R] 表示定向到由 RewriteRule 指令构造的 URL
你可以用这个替换你当前的代码
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subDir/
RewriteRule ^page-name/([^/]+)/([^/]+)/?$ page-name/?firstArg=$1&secondArg=$2 [L]
RewriteRule ^index'.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L,QSA]
</IfModule>
# END WordPress