Как перенаправить URL-адреса, начинающиеся с / test /, в отдельный скрипт? - PullRequest
2 голосов
/ 27 ноября 2008

У меня есть существующий htaccess, который отлично работает:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule (.*) /default.php 
DirectoryIndex index.php /default.php 

Я хочу изменить это так, чтобы все URL, начинающиеся с / test /, шли в /test/default.php.

Пример: http://www.x.com/hello.php -> http://www.x.com/default.php Пример: http://www.x.com/test/hello.php -> http://www.x.com/test/default.php

Ответы [ 4 ]

3 голосов
/ 27 ноября 2008

В основном, просто поставьте /test/ перед своим выражением лица. Кроме того, скобки здесь не нужны:

RewriteRule ^/test/ /test/default.php
0 голосов
/ 17 марта 2009
RewriteRule ^/test(/.*)?$ /test/default.php [L]

Доступ к исходному URI, если необходимо, в глобальном массиве $ _SERVER.

Судя по вашему оригиналу, вы, вероятно, хотите:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^/test(/.*)?$ /test/default.php [L]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ /default.php
0 голосов
/ 15 января 2009

Я бы использовал:

RewriteCond %{REQUEST_URI} ^/([^/]*/)*
RewriteRule !/default\.php$ %0default.php [L]
0 голосов
/ 27 ноября 2008

Если вам нужно передать информацию с URL, вы можете записать ее (в скобках) и отправить в default.php (с $ 1) следующим образом:

RewriteRule ^/test/(.*)$ /test/default.php/$1

, чтобы http //..../ test / foo / bar / приводил к /test/default.php/foo/bar/. Ваш скрипт может получить доступ к дополнительной информации.

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