Странное поведение mod_rewrite - PullRequest
       1

Странное поведение mod_rewrite

0 голосов
/ 20 сентября 2018

У меня есть сайт в подпапке http://www.example.com/folder

в .htaccess, у меня есть следующие правила перезаписи

RewriteEngine On
RewriteBase /folder/
RewriteRule ^imprint$ imprint.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule   "^([a-zA-Z0-9]*)$"  "index.php?code=$1"  [L]

в folder, у меня всего 2файлы index.php и imprint.php и, конечно, .htaccess

Если я сделаю запрос: http://www.example.com/folder/test,, я перенаправлен на http://www.example.com/folder/index.php?code=test.это хорошо работает.

Если я запрашиваю: http://www.example.com/folder/imprint, я получаю ошибку 404

Интересно, если я переименую imprint.php в imprint_.php и изменим соответствующее правило наRewriteRule ^imprint$ imprint_.php

Также работает противоположное: измените соответствующее правило на RewriteRule ^imprint_$ imprint.php и запросите http://www.example.com/folder/imprint_

Наконец, если у меня есть файл с именем imprint_.php и соответствующийПравило RewriteRule ^imprint_$ imprint.php и запрос http://www.example.com/folder/imprint_, это не не работает ни

Мой файл apache conf:

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    DocumentRoot /var/www/example.com/
    ServerName www.example.com
    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    <Directory /var/www/example.com/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>
</VirtualHost>

Что здесь не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...