2015-08-07 4 views
0

Я хочу использовать mod_rewrite с Wampserver для удаления «/index.php/» с адресной панели. Этот код предлагается с CodeIgniter Framework:Невозможно включить режим перезаписи

RewriteEngine on 
#RewriteBase/
RewriteCond $1 !^(index\.php|img|table-images|robots\.txt|css|fonts|js|uploads|dbg-wizard\.php) 
RewriteRule ^(.*)$ index.php/$1 [L] 

Это должно изменить URL:

mysite.local/contact_us 

к этому:

mysite.local/index.php/contact_us 

Это работает с XAMPP, но с WampServer первый URL генерирует сообщение об ошибке 404 ! Я включил mod_rewrite с Apache и ошибок в журнале ошибок нет.

Update:

Я добавил .blabla в .htacess, но ничего не произошло! Это означает, что Apache не читает .htaccess! Зачем?


Я добавил AllowOverride Все в httpd-vhosts.conf. Apache не выполнил .htaccess и , что позволило AllowOverride в httpd.conf недостаточно.

Это мой HTTPD-vhosts.conf файл:

<Directory E:\mysite\www> 
Options Indexes FollowSymLinks Includes ExecCGI 
#Order Deny,Allow 
#Allow from all 
AllowOverride All 
Require all granted 
</Directory> 
+0

перезапустил ваш сервер? – shafiq

+0

Какая версия WAMPServer? – RiggsFolly

+0

Я перезагружался каждый раз. Мой сервер wampserver: «wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b " – rostamiani

ответ

0

Чтобы проверить, что режим переписывания работает или не выполните следующие действия:

  1. Создайте папку в корневом каталоге под названием htaccess_test
  2. Создать .htaccess, и вставьте этот код в это и сохраните его.

    options +FollowSymLinks RewriteEngine On   
        RewriteBase /htaccess_test/ 
        RewriteCond %{REQUEST_FILENAME} !-f 
        RewriteCond %{REQUEST_FILENAME} !-d 
        RewriteRule ^([a-zA-Z0-9_-]+)/?$ user.php?u=$1 
    
  3. Создайте еще один файл с именем user.php и поместить этот код в это и сохранить его.

    <?php 
    if(isset($_GET['u'])){ 
    echo $_GET['u']; 
    } 
    
  4. Теперь переходим к типу браузера http://localhost/htaccess_test/put_some_value_here.

Если это работает, проблема не в настройке вашего апача.

Убедитесь, что вы редактируете текст справа .htaccess файл. .htaccess файл, который необходимо отредактировать, находится в корневой папке ваших проектов, а не в приложении или в любой другой папке. И положите этот код

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /root_directory_of_your_project/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 
Смежные вопросы