2016-01-29 2 views
1

У меня проблема на веб-сервере Linux.htaccess RewriteCond не всегда работает

В принципе у меня есть следующий код Htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

, который прекрасно работает, так что если я иду в www.mydomain.com/blablablajrehkhsg он показывает мне страницу www.mydomain.com/index.php ,

Но это не всегда работает. например, на конкретном URI, например, www.mydomain.com/specific-uri Я получаю ошибку на 404 странице.

Я даже пытался добавить следующую строку в моем HTAccess

RewriteCond %{REQUEST_URI} ^/specific-uri 

так Htaccess становится:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^/specific-uri 
RewriteRule . /index.php [L] 
</IfModule> 

, но он по-прежнему не будет показывать Mt страницы index.php.

Пожалуйста, помогите, я понятия не имею, что это может быть.

спасибо

+0

RewriteCond отлично работает. Есть ли у вас какие-либо другие правила? – starkeen

+0

У меня есть другие правила, но они не связаны. Даже если я удалю другие правила и просто оставлю этот код, у меня все еще проблема. – Ramon

ответ

1

Хорошо, я решил проблему.

В основном была страница в корне под названием specific-uri.php, которая находилась в конфликте. Обычно: состояние

RewriteCond %{REQUEST_FILENAME} !-f 

будет заботиться об этом, но я думаю, что апач был преобразование/конкретных URI-специфического-uri.php до состояния HTAccess.

Поэтому я добавил это:

Options -MultiViews 

до состояния в Htaccess, который я считаю, что говорит Apacheа не искать аналогичного содержания от Ури.

Теперь я могу видеть/specific-uri и specific-uri.php separetly.

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