2013-07-26 2 views
0
RewriteEngine On 
RewriteBase/

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 


RewriteRule ^Download/(.*)/?$ ./downloadit.php?key=$1 
RewriteRule ^Buy/(.*)/?$ ./buy.php?key=$1 
RewriteRule ^Admin/(.*)/?$ ./admin.php?cmd=$1&key=$2 
RewriteRule ^Admin/Edit/(.*)/?$ ./editfile.php?key=$1 

Я обычно не работаю с Apache Rewrite Engine, поэтому я не уверен.htaccess не работает не могу найти файл

Связь Я пытаю Разбираем является: http://Website.com/~User/Download/Testlicious/

У меня есть 4 файлов в общей сложности, все из них PHP файлы. Я хотел бы переписать непосредственно в эти файлы

Но он продолжает давать мне 404, не может найти /downloadit.php его в том же каталоге, то же самое с остальными.

* UPDATE * * * Поскольку на на виртуальном хосте, Duh. Мне нужно настроить мой Rewrite Base Правильно, DOH

RewriteEngine On 
RewriteBase /~GameCenter/ 
RewriteRule ^Download/(.*)/?$ ./downloadit.php?key=$1 [qsa] 
RewriteRule ^Buy/(.*)/?$ /buy.php?key=$1 
RewriteRule ^Admin/(.*)/?$ /admin.php?cmd=$1&key=$2 
RewriteRule ^Admin/Edit/(.*)/?$ /editfile.php?key=$1 

Теперь сейчас все ссылки и работает, но проблема в том, что в настоящее время $ 0/$ 1/$ 2 Dont запустить что-либо в файлах. Ничего не выплескивает в $ _POST ['key']

Теперь я предполагаю, что шаг 1 проблемы решен. Но теперь на O_O STEP 2 !!

+0

является это среда linux? – Tamas

+0

также попробуйте без битов RewriteCond - попробуйте: RewriteRule^Загрузить /(.*)/?$ /downloadit.php?key=$1 [NC, L] – Tamas

+0

Пробовал это тоже, все равно ничего хорошего. Он увидит Download /, но он не найдет файл downloadit.php и их в том же каталоге: | –

ответ

0

Необходимо установить условия для каждого правила, , и я уверен, что соответствие шаблону RewriteRule требует также слэш в начале .

я предполагал, что 4 PHP файлы находятся в том же каталоге, что файл находится в .htaccess

[L] говорит mod_rewrite прекратить разбор файла .htaccess для текущего запроса:.

RewriteEngine On 
RewriteBase/

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^Download/(.*)/?$ /downloadit.php?key=$1 [L] 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^Buy/(.*)/?$ /buy.php?key=$1 [L] 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
# You've only specified one matching group here, so $2 will be blank 
RewriteRule ^Admin/(.*)/?$ /admin.php?cmd=$1&key=$2 [L] 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^Admin/Edit/(.*)/?$ /editfile.php?key=$1 [L] 
+1

Нет, в контексте для каждого каталога URI запроса _never_ начинается с косой черты. – CBroe

+0

@CBroe поблагодарить за головы – Jon

+0

Теперь Ive попробовал, что вы набрали, и он все еще не работает. Не найдено Запрашиваемый URL /downloadit.php не был найден на этом сервере. Очень раздражает XD lolz. –