2013-03-02 2 views
-1

Я пытаюсь перенаправить все запросы от domain.com/sign-up/*. to domain.com/sign-up/ Кроме того, я хотел бы узнать, можно ли улучшить код, см. ниже.Перенаправление с использованием проблемы mod_rewrite

Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 
RewriteRule ^sign-up/(.*)\.php$ public/register.php [NC] 
RewriteRule ^sign-up/(.*) /sign-up/ [R] 
RewriteRule ^sign-up/\??lang=([a-zA-Z][a-zA-Z][a-zA-Z])$ public/register.php?lang=$1 [NC] 
RewriteRule ^sign-up/?$ public/register.php [NC,L] 

Почему нет перенаправления?

+0

Вы должны поделиться всеми случаями URL-адресов, которые вы хотите переписать. В противном случае все, что мы предлагаем, это просто догадки. Поделитесь URL-адресами и процессом. Что происходит сейчас, что должно произойти, как теперь появляются URL-адреса, как они должны быть ?! – Shef

+0

Привет, Все в настоящее время отлично работает, за исключением примера, упомянутого в вопросе. RewriteRule, который ничего не делает: «RewriteRule^sign-up /(.*)/sign-up/[R]« Если я правильно понимаю, все, что я наберу, например, domain.com/sign-up/foo, должно получиться перенаправлено (не переписано) на domain.com/sign-up/ –

+0

Кажется, не имеет эффекта. –

ответ

1

Попробуйте это, и дайте мне знать, если это сработает. Если нет, сообщите мне, для какого URL он не работает.

<IfModule mod_rewrite.c> 
Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 
RewriteBase/

# sign-up/xxx.php -> public/register.php 
RewriteRule ^sign-up/.*\.php$ public/register.php [L] 

# sign-up/xxx -> /sign-up/ 
RewriteRule ^sign-up/.+ /sign-up/ [R=301,QSA,L] 

# sign-up/?lang=xxx -> public/register.php?lang=xxx 
RewriteCond %{QUERY_STRING} .*lang=([a-z]{3}).* [NC] 
RewriteRule ^sign-up/$ public/register.php?lang=%1 [L,NC] 

# /sign-up/ -> public/register.php 
RewriteRule ^sign-up/?$ public/register.php [NC,L] 
</IfModule> 
+0

# Регистрация/xxx ->/регистрация/RewriteRule^регистрация /.*/регистрация/[L, R] похоже на тот же результат, что и у меня, никакого перенаправления не происходит. только переписать. регистрация/xxx должна показывать регистрацию/в браузере uri –

+0

@ user1614199 Как насчет сейчас? – Shef

+0

То же самое, он не перенаправляет. Есть ли другой переадресация htaccess на основе регулярного выражения, которое я могу использовать? –

Смежные вопросы