Использование Mod-Rewrite в XAMPP - PullRequest
2 голосов
/ 04 мая 2010

Я следовал некоторым урокам о том, как использовать Mod_Rewrite, но это не сработало.

У меня есть страница индекса php, которая принимает параметр страницы примерно так:

call: index?page=name1, name2, name3 etc.

<?php

if (isset($_GET['page']))
{
    switch($_GET['page'])
    {
       case 'front':
       include "front.php";
       break;

       default:
       break;
       }
}

?>

Я бы хотел запустить mod-rewrite, чтобы URL отображались как site.com/name1. Возможно ли это с кодом, который я использую выше?

Ниже то, что я пробовал в файлах конфигурации apache, но безрезультатно.

апач / CONF / http.conf

line 122: LoadModule rewrite_module modules/mod_rewrite.so
line 188: DocumentRoot "G:/xampp/htdocs"
line 198: #default
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

line 215:  <Directory "G:/xampp/htdocs">
line 228:  Options Indexes FollowSymLinks Includes ExecCGI
line 235:  AllowOverride All

# cgi
line 355:
<Directory "G:/xampp/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory> 

G: \ XAMPP \ Apache \ конф \ экстра \ http.v-hosts.conf

<VirtualHost *:80>
DocumentRoot G:/xampp/htdocs/
ServerName localhost
ServerAdmin admin@localhost

<Directory "G:/xampp/htdocs/localhost/">
Options Indexes FollowSymLinks
AllowOverride FileInfo
Order allow,deny
Allow from all
</Directory>
</VirtualHost> 

<VirtualHost *:80>
DocumentRoot G:/xampp/htdocs/site2/
ServerName site2.localhost
ServerAdmin admin@site2.localhost

<Directory "G:/xampp/htdocs/site2.localhost/">
Options Indexes FollowSymLinks
AllowOverride FileInfo
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

.htaccess файл

IndexIgnore *

RewriteEngine on
RewriteRule ^([^/\.]+)/?$ /index.php?page=$1 [L]

1 Ответ

1 голос
/ 05 мая 2010

mod_rewrite может только переписывать / перенаправлять запросы. Таким образом, вам действительно нужно использовать /foobar снаружи и запросить /foobar, чтобы mod_rewrite переписал его внутренне в /index.php?page=foobar. Это распространенное заблуждение людей о том, как работает mod_rewrite.

...