2015-11-20 2 views
0

Кажется, я не могу об этом подумать. Я просто снял файлы своего сайта с моего сервера, чтобы работать с ними в автономном режиме. Однако мои условия перезаписи больше не работают так, как ожидалось.Apache mod_rewrite не происходит на localhost

Я googleing в течение последних 3-х часов и продолжают поступать к этим растворам:

  1. положить мусор в файл .htaccess, чтобы убедиться, что он был прочитан. Я сделал это и получил 500 ошибок.

  2. Убедитесь, что mod_rewrite включен, и я уверен, что он был указан в php_info(). Это не проблема.

Кроме этого, я не могу понять эту вещь.

Вот мой .htaccess. Все, что я хочу сделать, это удалить index.php из моей URL-адресов:

# Rewrite url no index.php 
RewriteEngine On 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d 
RewriteRule . index.php 

Вот мои виртуальные конфигурации хоста на данный момент:

<VirtualHost *:80> 
ServerAdmin [email protected] 
DocumentRoot "c:/wamp/www/myapp/public_html/" 
<Directory "c:/wamp/www/myapp/public_html/"> 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 
ServerName myapp.local 
ErrorLog "logs/myapp.local" 
CustomLog "logs/myapp.local" common 
</VirtualHost> 

Я хотел бы также сделать его известным, что правила перезаписи, кажется для работы бит, когда они находятся в конфигурации виртуального хоста. Так что-то вроде этого:

<VirtualHost *:80> 
ServerAdmin [email protected] 
DocumentRoot "c:/wamp/www/myapp/public_html/" 
<Directory "c:/wamp/www/myapp/public_html/"> 
# use mod_rewrite for pretty URL support 
RewriteEngine on 
# If a directory or a file exists, use the request directly 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d 
# Otherwise forward the request to index.php 
RewriteRule . index.php 

# ...other settings... 
</Directory> 
ServerName myapp.local 
ErrorLog "logs/myapp.local" 
CustomLog "logs/myapp.local" common 
</VirtualHost> 

У меня были другие проблемы, связанные с этим, хотя, так как я вложенными приложения (один это в/и другой в/app2 /). У меня также возникли проблемы с игнорированием условия! -f и переписыванием URL-адресов моих изображений и css.

Есть ли у кого-нибудь идеи, как это исправить? Заранее спасибо!

ответ

0

Вы должны использовать этот код, как это, чтобы удалить index.php из URL.

RewriteEngine On 
RewriteBase/

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ /index\.php(.*)\ [NC] 
RewriteRule^%1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^.*$ index.php [L,QSA] 

И тогда в вашей голове раздел вашего HTML добавить это исправить проблему CSS.

<base href="http://myapp.local" /> 
+0

Я просто попытался добавить свой код в свой файл htaccess вместо моего, но я получаю те же результаты. Любые другие мысли? – Fittersman

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