2015-07-16 2 views
2
RewriteEngine On 
RewriteBase /myproject/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)$ $1.php [QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^books/([^/]+)/$ books.php?id=$1 [QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^books/([^/]+)$ books.php?id=$1 [QSA] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^books/ books.php [QSA] 

Все работает, когда я типа: локальный/имя но ломается, если я типа: локальный/имя/.htaccess добавить/поддержка

Что случилось с моей .htaccess и как добавить поддержку «/»

ответ

1

Вам не нужно 2 правила, и ваше 2-е правило имеет недопустимое регулярное выражение. Попытайтесь это правило:

Options -MultiViews 
RewriteEngine On 
RewriteBase /myproject/ 

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

RewriteRule ^books/([^/]+)/?$ books.php?id=$1 [L,NC,QSA] 

RewriteCond %{DOCUMENT_ROOT}/myproject/$1\.php -f [NC] 
RewriteRule ^([^/]+)/?$ $1.php [L] 
+1

Это не работает. Он по-прежнему ломается, когда я набираю: localhost/name /, работает, если мы удаляем последний/ –

+0

, это не работает, я попробовал изменения, которые вы предложили. –

+1

Есть ли у вас другие предложения? –