мод переписать все после домена в get - PullRequest
0 голосов
/ 18 мая 2011

Как я могу переписать все после имени домена в get, если оно еще не получено?

Например: example.com/blah/blah.blah

станет example.com/?blah/blah.blah

В основном все, что я хочу сделать, это добавить? после первой косой черты, если ее еще нет.

Спасибо!

Ответы [ 3 ]

2 голосов
/ 18 мая 2011
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /index.php?$0 [QSA]

Но у этого решения есть некоторые проблемы, @ anubhava's лучше; -)

1 голос
/ 18 мая 2011

Просто используйте переменную %{REQUEST_URI} в качестве параметра запроса:

Options +FollowSymlinks -MultiViews
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/index.php$ [NC]
RewriteRule . /index.php?%{REQUEST_URI} [L,QSA]
0 голосов
/ 18 мая 2011

Другой метод - использовать переменную $ _GLOBALS ['PATH_INFO'], которая даст вам оставшуюся часть пути после имени скрипта, поэтому для:

http://example.com/somefile.php/james/fred/blogs.csv?something=value

PATH_INFO будет установлен в "/james/fred/blogs.csv", и у вас все еще будет возможность использовать переменные GET / POST отдельно в качестве модификаторов. Это может быть очень полезно, например, если вы хотите создать файл .csv и сделать так, чтобы он отображался на удаленном клиенте браузера, как если бы он назывался «blogs.csv».

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