我想将所有/ wordpress / requests重定向到root的同一地址。
例如: / wordpress / foo - > /富
我通过将其添加到.htaccess文件中尝试了这个答案:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^wordpress/.*$ / [R=302]
</IfModule>
但不用说,它只是将直接请求重定向到/ wordpress /到/.
e.g。对/ wordpress / foo /的请求仍将被视为/ wordpress / foo /.
我尝试了所有我发现的但没有任何作用。
(url由于utf8阿拉伯字符而被编码)
完成.htaccess内容:
RewriteOptions inherit
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule /wordpress/(.*) /$1 [PT]
</IfModule>
答案 0 :(得分:1)
试试这个:
RewriteRule /wordpress/(.*) /$1 [PT]
<强>已更新强>
我认为你的.htaccess应该是这样的:
RewriteOptions inherit
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule /wordpress/(.*) /$1 [PT]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
<强>已更新强>
仅供参考。
如果您只需要透明重定向,则应使用
RewriteRule /wordpress/(.*) /$1 [PT]
在这种情况下,重定向将透明,用户仍将在浏览器的地址行中看到旧的URL
但是如果您希望用户知道URL已更改,则应使用
RewriteRule /wordpress/(.*) /$1 [R=301]
在这种情况下,URL也会在浏览器的地址行中更改
还有一个:
R=301 - is for permanently moved URLs (user's browser will rememeber the new URL)
R=302 - is for temporarely moved URLs
答案 1 :(得分:0)
以下应该这样做:
RewriteEngine On
RewriteRule "^wordpress/?(.*)" "/$1" [R=302]
更新:在'/'后添加问号,即使没有子路径也能启用重定向。