2014-02-08 3 views
1

Я пытаюсь реализовать некоторые правила перезаписи htaccess. Однако в не профи в htaccess..htaccess правило перезаписи с субдоменом DocumentRoot

У меня есть шлюз поддомена в (как описано в: .htaccess and rewrite sub domains)

Теперь я хотел бы использовать SEO дружественных URL. В этом случае шлюз имеет некоторые подпапки, то есть электронную почту.

http://gateway.example.com/email/Param1/Param2/

Эта гиперссылка должна быть переписана http://gateway.example.com/email/index.php?hash=Param1&hash2=Param2.

В папке электронной почты я создал файл .htaccess со следующим содержимым:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.* - [L] 
RewriteRule ^/(.*)/(.*)/ index.php?hash=$1&hash2=$2 

Когда запрашивающий http://gateway.example.com/email/Param1/Param2/ теперь я получаю 404. Что случилось с правилом?

+0

ИТАК собирается ли http://gateway.example.com работать в первую очередь? и какой у вас для этого документ? –

+0

@PanamaJack да он действительно работает. –

ответ

1

Вы должны сделать это таким образом

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^/?([^/]*)/([^/]*)/ /email/index.php?hash=$1&hash2=$2 [L] 
0

вы можете попробовать.

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^/([^/]*)/([^/]*)/ index.php?hash=$1&hash2=$2 

* вам нужно настроить Apache (HTTPd) принять UrlRewrite путем изменения AllowOverride от не всем, как это:

<Directory "/var/www/html"> 
Options Indexes FollowSymLinks 
AllowOverride all 
Order allow,deny 
Allow from all 
</Directory> 
+0

К сожалению, не работает. –

+0

Вы разрешили .htaccess на вашем сервере apache? – ImadOS

+0

* вам нужно настроить apache (httpd), чтобы принять UrlRewrite, изменив AllowOverride от не всех к этому (на /etc/httpd/config/httpd.conf для centos): Опции Индексы FollowSymLinks AllowOverride all Разрешить, отказывать Разрешить все ImadOS

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