2014-10-22 3 views
0

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

Я хочу это:

/foo/ = index.php?a=foo 
/foo/bar/ = index.php?a=foo&b=bar 
etc. up to /foo/bar/baz/cat/dog/ (&e=dog) 

Я также хочу index.php быть невидимым, так что /index.php перезаписывает /.

Другое дело, я хотел бы, чтобы всегда быть косую черту и, следовательно, способность делать ...

/foo/bar/baz/?another=whatever 

У меня есть каталоги, такие как/изображений/что я не хочу, чтобы это применимо к, , так что я должен сделать белый список для этого или есть определенные перенаправления, которые я могу использовать?

Cheers!

+0

Какой код вы нашли, что вы пробовали? –

ответ

0

Вам не нужно указывать каталоги в белых списках. Для этого нужны RewriteConds.

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

Он проверяет, чтобы убедиться, что это не реальный файл или реальный каталог затем выполняет RewriteRule.

Попробуйте эти правила ниже в вашем файле .htaccess, чтобы получить то, что вы хотите.

RewriteEngine On 
RewriteCond %{REQUEST_URI} /+[^\.]+$ 
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+) index.php?a=$1&b=$2&c=$3&d=$4&e=$5&%{QUERY_STRING} [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+) index.php?a=$1&b=$2&c=$3&d=$4&%{QUERY_STRING} [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/([^/]+)/([^/]+) index.php?a=$1&b=$2&c=$3&%{QUERY_STRING} [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/([^/]+) index.php?a=$1&b=$2&%{QUERY_STRING} [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+) index.php?a=$1&%{QUERY_STRING} [L] 
+0

Работал отлично, кроме перенаправляемого index.php, который я сейчас только что схватил из другого учебника: https://ellislab.com/expressionengine/user-guide/urls/remove_index.php.html – Varrick

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