Переписать каждый URL в index.php, используя .htaccess - PullRequest
1 голос
/ 11 декабря 2011

Я пытаюсь перехватить каждый URL и переписать его в index.php.У меня есть следующий код в моем .htaccess прямо сейчас:

RewriteEngine on
RewriteRule .* index.php

Он переписывает каждый URL, но я всегда получаю 404, говоря, что файл index.php не может быть найден.Путь к файлу, который он ищет, правильный.Что я здесь не так делаю?


Обновление 1

Когда я непосредственно перехожу к index.php, он правильно отображает файл.Очень странно.


Обновление 2

Я включил ведение журнала для mod_rewrite, используя это в httpd.conf:

RewriteLog /var/log/apache2/rewrite.log
RewriteLevel 3

Эточто там записано:

strip per-dir prefix: /Users/rits/Sites/test/ -> 
applying pattern '.*' to uri ''
rewrite '' -> 'index.php'
add per-dir prefix: index.php -> /Users/rits/Sites/test/index.php
internal redirect with /Users/rits/Sites/test/index.php [INTERNAL REDIRECT]

Ответы [ 4 ]

1 голос
/ 11 декабря 2011

Я вполне уверен, что это потому, что он пытается бесконечно переписать index.php в index.php.

Попробуйте вместо этого:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !index\.php
RewriteRule .* index.php

Это должно предотвратить перезапись на себя и, надеюсь, решить вашу проблему.

0 голосов
/ 11 сентября 2012

Это содержимое файла .htaccess, который у меня есть и работает:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 
0 голосов
/ 11 декабря 2011

Это .htaccess с одного из моих веб-сайтов, который я настроил для перенаправления всего на страницу индекса, и он работает для меня, если вы хотите попробовать:

RewriteEngine on
RewriteOptions MaxRedirects=10
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !index\.php
RewriteRule ^.*$ http://www.mywebpage.com/ [R=301,L]
0 голосов
/ 11 декабря 2011

Попробуйте это:

RewriteEngine on
RewriteRule ^(.*)$ http://www.yourwebpage.com/$1 [L,R=301]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...