2013-05-29 5 views
1

У меня есть это правило перезаписи, которое добавляет расширение .php к URL-адресам. вошел взгляд.htaccess переписать, чтобы разрешить каталог или никакой каталог

URL, как это: http://localhost/Home

Url прочитаем выглядеть следующим образом: http://localhost/home.php

Проблема у меня в том, что некоторые URLs может выглядеть это нравится:

http://localhost/sub/123

Я должен объяснить, что это не подкаталог. Часть sub является файлом, а 123 используется как переменная get. Это выглядит чище.

Если это произойдет, вы получите ошибку 500;

Вот что на данный момент

#add php extension 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

И вот что я пробовал, но не работает.

#add php extension 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)|(.*)/(.*)$ $1.php 

ответ

1

Изменение кода с этим, чтобы решить вашу проблему:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteCond %{REQUEST_URI} !^/(phpscripts|js)/ [NC] 
RewriteRule ^([^/]*)(?:/(.*?|))?/?$ /$1.php?$2 [L] 
+0

Okay новую проблему. Как я могу использовать это правило только в том случае, если вложенная папка является 'gig'. Это отлично работает для того, что я спросил, но теперь столкнулся с новой проблемой, которую я забыл. Есть подпапки, к которым обращается javascript –

+0

. Итак, вы хотите применить выше правила только для URI, таких как '/ gig/User' или '/ gig/about'? – anubhava

+0

Да, или, альтернативно, не применяйте правило для чего-либо в phpscripts или js папке. На самом деле альтернатива была бы лучше –

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