2014-09-07 3 views
0

Я имею HTAccess линию согласно ниже: -Внутренняя ошибка сервера Htaccess

Options +FollowSymlinks 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php [NC,L] 

RewriteRule ^articles/images/(.*)$ images/$1 
RewriteRule ^articles/(.*)/images/(.*)$ images/$2 

RewriteRule ^articles/([a-zA-Z0-9_-]+)$ articles.php?articleType=$1 
RewriteRule ^articles/([a-zA-Z0-9_-]+)/([0-9]+)$ articles.php?articleType=$1&page=$2 
RewriteRule ^articles/([a-zA-Z0-9_-]+)/(.*)$ articles.php?articleType=$1&articleID=$2 

Проблема заключается в том, если я комментирую RewriteRule ^(.*)$ $1.php [NC,L], http://localhost/trip/articles/Sightseeing может быть дисплей. Но я не могу отобразить http://localhost/trip/privacy (Ошибка: объект не найден!). Если я раскомментирую строку, я могу отобразить http://localhost/trip/privacy, но не могу отобразить http://localhost/trip/articles/Sightseeing (Ошибка: Внутренняя ошибка сервера).

Я уже пробовал вставить <Directory /> AllowOverride All </Directory> и получил ошибку: Ошибка сервера! и вставьте <IfModule mod_rewrite.c>...</IfModule> и получите ошибку: Внутренняя ошибка сервера.

Есть ли способ для обеих ссылок быть успешно отображен? Заранее спасибо.

ответ

0

Я уже решил это. Для тех, у кого есть такая же проблема, как у меня: -

Options +FollowSymlinks 
RewriteEngine On 

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

RewriteRule ^articles/images/(.*)$ images/$1 

RewriteRule ^articles/(.*)/images/(.*)$ images/$2 

RewriteRule ^articles/([a-zA-Z0-9_-]+)$ articles.php?articleType=$1 [L] 
RewriteRule ^articles/([a-zA-Z0-9_-]+)/([0-9]+)$ articles.php?articleType=$1&page=$2 
RewriteRule ^articles/([a-zA-Z0-9_-]+)/(.*)$ articles.php?articleType=$1&articleID=$2 
+0

Хмм не портативное решение, поскольку в настоящее время правила не могут переписать '/ реж/File' в'/реж/file.php', как у вас есть '^ ([^/] +) $ 'regex pattern. – anubhava

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