htaccess 301 перенаправить example.com/beta/xyz в example.com/xyz - PullRequest
2 голосов
/ 03 декабря 2010

Мне нужно общее правило, которое отображает каждый URL в подкаталоге /beta на соответствующий URL в корне; по сути, мне нужно удалить /beta со всех URL.

В случае, если какая-то разница, URL-адреса динамически генерируются WordPress.

В настоящее время мой .htaccess файл:

# 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

Можете ли вы сказать мне, где поставить новые строки?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 06 декабря 2017

Ваш вопрос не совсем понятен, но я готов поспорить, что вы хотите, чтобы Wordpress, установленный в somedir/beta, появился в yoursite.com / вместо yoursite.com / beta / . Вставленные вами правила находятся в somedir/beta/.htaccess и являются правилами Wordpress по умолчанию. Вы должны оставить их в покое.

Для этого вам нужно поместить следующие правила в корневой каталог, например somedir/.htaccess, после изменения example.com на свой собственный домен. Ваш веб-сервер сначала читает этот корень .htaccess, и когда он это сделает, он узнает о необходимости переписать запросы в /beta.

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/beta/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /beta/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ beta/index.php [L] 
</IfModule>

Больше информации в Кодексе: https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory

0 голосов
/ 27 января 2011

Не могли бы вы попробовать это?

RewriteEngine On
RewriteRule ^beta/(.*)$ http://example.com/$1 [R=301,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...