Сценарий перенаправления htaccess с использованием WordPress - PullRequest
1 голос
/ 28 августа 2009

Я не очень хорош во всем, что требует регулярных выражений - включая перенаправления.

Мне нужно перенаправить все подстраницы на определенную подстраницу.Все, что я пробовал, либо терпит неудачу, либо вызывает бесконечный цикл перенаправления.

Пример: скажем, я хочу, чтобы все в домене перенаправляло на www.test.com/fubar (но, очевидно, не / fubar)

Кажется, это должно быть очень легко.Кто-нибудь?

[Обновление]

Я уже все перепробовал, но ничего не работает.Происходит то, что страницы не перенаправляют, а также не загружают таблицы стилей.Я думаю, что это как-то связано с остальной частью файла htaccess, который содержит материал для WordPress:

RewriteEngine On

RewriteBase /

#uploaded files
RewriteRule ^(.*/)?files/$ index.php [L]
RewriteCond %{REQUEST_URI} !.*wp-content/plugins.*
RewriteRule ^(.*/)?files/(.*) wp-content/blogs.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteCond %{REQUEST_URI} ^.*/wp-admin$
RewriteRule ^(.+)$ $1/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

Ответы [ 4 ]

0 голосов
/ 28 августа 2009

Это проще сделать с помощью прокси:

ProxyRequests Off
<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>
ProxyPass / http://www.test.com/fubar/
ProxyPassReverse / http://www.test.com/fubar/
0 голосов
/ 28 августа 2009
RewriteEngine On
RewrteRule !^/?fubar$ /fubar
0 голосов
/ 28 августа 2009

Что вы хотите:


RewriteEngine On
RewriteRule ^fubar/ - [L] // protect from loop, not sure if its really necessary
RewriteRule ^.*$ fubar/$0 [L,QSA]

Теперь для перенаправления, только если путь к файлу, указанный пользователем, не существует:


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ fubar/$0 [L,QSA]
0 голосов
/ 28 августа 2009

Я бы сказал что-то вроде этого:

# Don't rewrite anything in /fubar
RewriteRule ^fubar - [L]
# Redirect everything to /fubar
RewriteRule ^(.*)$ /fubar/$1 [R=301,L,QSA]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...