2016-08-23 2 views
2

я хочу сделать поддельные подкаталоги с Htaccess (fakefolder/forget-password с переписыванием мод), но это на самом деле не работает для меня ...Htaccess: дружественный URL - Слэш и «поддельные подкаталоги»

У меня есть это URL:

parent-directory/index.php?version=1&do=forget-password&[email protected]&token=85085ab92fcfd5dada280c73f7f494ec

* Примечание: переменная «электронная почта» проверяется с MySQL, и я использую filter_var в случае, если значение по электронной почте, поэтому он может быть также имя пользователя вместо (email=username). parent-directory - настоящий каталог. version является динамическим и может быть 2 или 3 или строка, и показывать другой результат, поэтому в этом случае version=1 - fakefolder. version=2 и любое другое значение может быть что-нибудь еще (fakefolder2)

и это htaccess код:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 

# Set configuration file 
php_value auto_prepend_file configuration.inc.php 

# Start Rewriting 
RewriteBase /parent-directory/ 

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

RewriteRule ^fakefolder$ index.php?version=1 [QSA,L] 

если я пытаюсь сделать что-то вроде этого: RewriteRule ^([a-z])$/forget-password$ index.php?version=$1&do=forget-password [QSA,L] это не работает, или показывая 404

ли Возможно? (если да, то может ли он быть многоуровневым? Например, index.php?version=1&do=forget-password&[email protected] -> ([a-z])$/forget-password/username вместо fakefolder/forget-password?email=...)?

Прошу прощения за мой английский и большое спасибо.

ответ

1

Попробуйте эти правила:

# Set configuration file 
php_value auto_prepend_file configuration.inc.php 

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
# Start Rewriting 
RewriteBase /parent-directory/ 

RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

RewriteRule ^([\w-]+)/forget-password/([\w-]+)/?$ index.php?version=$1&do=forget-password&email=$1 [QSA,L,NC] 

RewriteRule ^([\w-]+)/forget-password/?$ index.php?version=$1&do=forget-password [QSA,L,NC] 

RewriteRule ^fakefolder/?$ index.php?version=1 [QSA,L,NC] 
+0

Привет, извините за задержку, я буду проверять его сейчас – natanelg97

+0

Update: я уже проверил это - последнее правило ('RewriteRule^fakefolder/$ index.php ? version = 1 [QSA, L, NC] '), но остальное (' RewriteRule^([az])/forget-password/([\ w -] +) /? $ index.php? version = $ 1 & do = забыть пароль & email = $ 1 [QSA, L, NC] RewriteRule^([az])/забыть пароль /? $ index.php? version = $ 1 & do = забыть пароль [QSA, L, NC] ') didn ' t, может, я сделал что-то не так? – natanelg97

+0

Обновление: я забыл 'RewriteRule^- [L]' и добавил '[OR]' после 'RewriteCond% {SCRIPT_FILENAME} -d', я попробую еще раз. Еще одно обновление: я добавил, но все же 404 – natanelg97

Смежные вопросы