2 Stimmen

Wie kann ich URLS, die mit /test/ beginnen, an ein separates Skript umleiten?

Ich habe eine bestehende htaccess, die gut funktioniert:

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

Ich möchte dies so ändern, dass alle URLs, die mit /test/ beginnen, zu /test/default.php führen.

Beispiel: http://www.x.com/hello.php -- > http://www.x.com/default.php Beispiel: http://www.x.com/test/hello.php -- > http://www.x.com/test/default.php

3voto

Konrad Rudolph Punkte 503837

Im Grunde genommen, setzen Sie einfach /test/ vor Ihrem Ausdruck. Auch die Klammern sind hier unnötig:

RewriteRule ^/test/ /test/default.php

0voto

Ken Punkte 73996

Wenn Sie Informationen aus der URL weitergeben müssen, können Sie diese (mit Klammern) erfassen und wie folgt an default.php (mit $1) senden:

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

so dass http//..../test/foo/bar/ zu /test/default.php/foo/bar/ führen würde. Ihr Skript kann dann auf die zusätzlichen Informationen zugreifen.

0voto

Gumbo Punkte 617646

Ich würde verwenden:

RewriteCond %{REQUEST_URI} ^/([^/]*/)*
RewriteRule !/default\.php$ %0default.php [L]

0voto

RewriteRule ^/test(/.*)?$ /test/default.php [L]

Greifen Sie bei Bedarf auf den ursprünglichen URI im globalen Array $_SERVER zu.

Ihrem Original nach zu urteilen, wollen Sie das wahrscheinlich:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X