я провел 2 дня на следующей задаче:правило Rewrite не работает на виртуальном хосте
У меня есть виртуальный хост на сервере Apache 2.4.7 со следующей конфигурацией:
<VirtualHost *:80>
DocumentRoot /home/xxx/test/www
ServerAdmin [email protected]
ServerName test.xxx.com
ServerAlias www.test.xxx.com
AddHandler x-httpd-php5 .php
ErrorLog ${APACHE_LOG_DIR}/xxx-test-error.log
LogLevel warn
LogLevel alert rewrite:trace6
CustomLog ${APACHE_LOG_DIR}/xxx-test-access.log combined
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/xxx/test/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
И .htaccess файл, как это:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^article/([^/\.]+)/?$ article-page.php?name=$1 [L]
RewriteRule ^list/.?$ list.php [L]
RewriteRule ^sitemap.xml$ sitemap.php [L]
</IfModule>
Я хочу, чтобы все URL, созданные/список/обработали list.php
Но когда я lauch URL: http://test.xxx.com/list/yyy-category
Он просто возвращает 404. Я проверил, list.php существует и имеет хорошие права.
Я проверил журналы, и я получил:
[Sun Feb 14 21:00:23.764091 2016] [rewrite:trace3] [pid 17393] mod_rewrite.c(468): [client 79.81.246.191:53329] 79.81.246.191 - - [test.xxx.com/sid#66dd81c14970][rid#66dd81b400a0/subreq] [perdir /home/xxx/test/www/] add path info postfix: /home/xxx/test/www/list.php -> /home/xxx/test/www/list.php/yyy-category, referer: http://test.xxx.com/
[Sun Feb 14 21:00:23.764163 2016] [rewrite:trace3] [pid 17393] mod_rewrite.c(468): [client 79.81.246.191:53329] 79.81.246.191 - - [test.xxx.com/sid#66dd81c14970][rid#66dd81b400a0/subreq] [perdir /home/xxx/test/www/] strip per-dir prefix: /home/xxx/test/www/list.php/yyy-category -> list.php/yyy-category, referer: http://test.xxx.com/
[Sun Feb 14 21:00:23.764194 2016] [rewrite:trace3] [pid 17393] mod_rewrite.c(468): [client 79.81.246.191:53329] 79.81.246.191 - - [test.xxx.com/sid#66dd81c14970][rid#66dd81b400a0/subreq] [perdir /home/xxx/test/www/] applying pattern '^article/([^/\\.]+)/?$' to uri 'list.php/yyy-category', referer: http://test.xxx.com/
[Sun Feb 14 21:00:23.764228 2016] [rewrite:trace3] [pid 17393] mod_rewrite.c(468): [client 79.81.246.191:53329] 79.81.246.191 - - [test.xxx.com/sid#66dd81c14970][rid#66dd81b400a0/subreq] [perdir /home/xxx/test/www/] add path info postfix: /home/xxx/test/www/list.php -> /home/xxx/test/www/list.php/yyy-category, referer: http://test.xxx.com/
[Sun Feb 14 21:00:23.764259 2016] [rewrite:trace3] [pid 17393] mod_rewrite.c(468): [client 79.81.246.191:53329] 79.81.246.191 - - [test.xxx.com/sid#66dd81c14970][rid#66dd81b400a0/subreq] [perdir /home/xxx/test/www/] strip per-dir prefix: /home/xxx/test/www/list.php/yyy-category -> list.php/yyy-category, referer: http://test.xxx.com/
[Sun Feb 14 21:00:23.764287 2016] [rewrite:trace3] [pid 17393] mod_rewrite.c(468): [client 79.81.246.191:53329] 79.81.246.191 - - [test.xxx.com/sid#66dd81c14970][rid#66dd81b400a0/subreq] [perdir /home/xxx/test/www/] applying pattern '^list/(.?)$' to uri 'list.php/yyy-category', referer: http://test.xxx.com/
[Sun Feb 14 21:00:23.764355 2016] [rewrite:trace3] [pid 17393] mod_rewrite.c(468): [client 79.81.246.191:53329] 79.81.246.191 - - [test.xxxcom/sid#66dd81c14970][rid#66dd81b400a0/subreq] [perdir /home/xxx/test/www/] add path info postfix: /home/xxx/test/www/list.php -> /home/xxx/test/www/list.php/yyy-category, referer: http://test.xxx.com/
[Sun Feb 14 21:00:23.764386 2016] [rewrite:trace3] [pid 17393] mod_rewrite.c(468): [client 79.81.246.191:53329] 79.81.246.191 - - [test.xxx.com/sid#66dd81c14970][rid#66dd81b400a0/subreq] [perdir /home/xxx/test/www/] strip per-dir prefix: /home/xxx/test/www/list.php/yyy-category -> list.php/yyy-category, referer: http://test.xxx.com/
[Sun Feb 14 21:00:23.764414 2016] [rewrite:trace3] [pid 17393] mod_rewrite.c(468): [client 79.81.246.191:53329] 79.81.246.191 - - [test.xxx.com/sid#66dd81c14970][rid#66dd81b400a0/subreq] [perdir /home/xxx/test/www/] applying pattern '^sitemap.xml$' to uri 'list.php/yyy-category', referer: http://test.xxx.com/
[Sun Feb 14 21:00:23.764445 2016] [rewrite:trace1] [pid 17393] mod_rewrite.c(468): [client 79.81.246.191:53329] 79.81.246.191 - - [test.xxx.com/sid#66dd81c14970][rid#66dd81b400a0/subreq] [perdir /home/xxx/test/www/] pass through /home/yyy/test/www/list.php, referer: http://test.xxx.com/
Любая идея о том, как это исправить?
Я помог мне исправить небольшую ошибку, которую я ввел при поиске, но это не было основной причиной. Спасибо, что помогли мне в этом! – Orden