2017-02-16 9 views
0

мне нужна помощь с некоторым синтаксисом mod_rewrite, в настоящее время у меня есть

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?page=$1 

Какой дисплей mydomain.com/index.php?page=testpage, когда пользователь переходит к mydomain.com/testpage.

Есть еще две вещи, которые я хочу сделать, но играть с другими примерами пока не удастся.

Во-первых, я хочу, чтобы mydomain.com/testpage/ работал так же, как mydomain.com/testpage, в результате чего конечная косая черта не влияет на функциональность.

Во-вторых, я хочу, чтобы добавить вторую переменную, которая не всегда может присутствовать, так что mydomain.com/testpage/testvar будет отображать mydomain.com/index.php?page=testpage & вар = testvar

Любой помощь очень ценится.

Заранее спасибо.

ответ

0

Вам необходимы дополнительное правило и сделать завершающий слэш дополнительно:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

RewriteRule ^([\w-]+)/?$ index.php?page=$1 [L,QSA] 

RewriteRule ^([\w-]+)/([\w-]+)/?$ index.php?page=$1&var=$2 [L,QSA] 
+0

Спасибо вам, что это работает, однако при добавлении лидирующего слэша это вызывает мое форматирование страницы (которое зависит от начальной загрузки), чтобы стать несуществующими, любое быстрое решение для этого? – Andrew

+0

Это связано с использованием относительных ссылок в css/js/images. Вы можете добавить это чуть ниже '' раздела HTML вашей страницы: '' – anubhava

+1

Отлично, спасибо вам большое! – Andrew