http.conf перенаправить example.com/foo/bar на example.com/foo?id=bar - PullRequest
2 голосов
/ 11 сентября 2011

Я пытаюсь создать динамическую страницу, содержимое которой определяется переменной, переданной ей, но я хочу, чтобы URL был хорошим.По сути, я хочу иметь один индексный файл в каталоге / foo, который обрабатывает любую панель.example.com/foo/bar to example.com/foo?id=bar

Я перепробовал все, что мог придумать в своем файле httpd.conf.Моя последняя попытка была:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/foo/([a-z-]*) /foo/index.php?id=$1 [QSA,L]

Однако, когда я пытаюсь загрузить example.com/foo/bar, загружается страница example.com

Любая помощь очень ценится!

Редактировать: он все еще загружает example.com/index.php, когда я захожу на example.com/foo/bar. Может быть, вмешивается одно из моих других правил?

AllowOverride none
Options +FollowSymLinks
RewriteEngine on

RewriteRule ^(.*)\.html$ http://www.example.com/$1.php [R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/foo/([a-z-]*)(\/?)$ /foo/index.php?id=$1 [NC,QSA,L]

RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteRule ^/?(.*) http://www.example.com/$1 [L,R,NE]

.html в .php, чтоЯ пытаюсь достичь, и example.com на www.example.com соответственно.

1 Ответ

5 голосов
/ 11 сентября 2011

Я использую это в моем httpd.conf

<VirtualHost *:80>
    DocumentRoot "/var/www/"
    ServerName www.domain.com   
    ServerAlias www.domain.com
    <Directory /var/www/>
        #other directives
    </Directory>    
    <Directory /var/www/foo/>   
        RewriteEngine on
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d 
        RewriteRule ^([a-z]+)(\/?)$ index.php?id=$1 [NC,QSA,L]
    </Directory>
</VirtualHost>
...