2015-07-06 3 views
1

Проблема в том, что у меня есть файл .htaccess, который перенаправляет пользователей, которые переходят на example.com/f89sk3 -> example.com/?s=f89sk3, если это имеет смысл.Как сделать несколько постоянных ссылок в .htaccess?

Я хочу, чтобы то же самое произойдет для людей, которые идут, например: example.com/p/login -> example.com/p/login

Это мой текущий файл .htaccess:

RewriteEngine On 

RewriteBase/
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$ 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.*)$ index.php?s=$1 [QSA,L] 
+2

'example.com/р/login' и' example.com/р/login' одни и те же ... Что вы пытаетесь сделать? –

+0

Ваше текущее правило будет переписывать '/ p/login' в' /index.php? S = p/login' Есть ли проблемы с этим? – anubhava

+0

@anubhava Мое текущее правило только перезаписывает example.com/codehere to? S = codehere Я все еще хочу, чтобы это произошло, но я также хочу/p/login быть p = login. – Tom

ответ

1

вы можете использовать эти правила:

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$ 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

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

RewriteRule ^p/(.+)$ index.php?p=$1 [QSA,L] 

RewriteRule ^(.+)$ index.php?s=$1 [QSA,L] 
+0

Что это значит: RewriteRule^(. +) $ Index.php? S = $ 1 [QSA, L] делать не так: RewriteRule^(. *) $ Index.php? S = $ 1 [QSA, L]? – Tom

+0

Главное отличие заключается в правиле перед этим правилом в моем ответе. Использование '. +' Вместо '. *' Является хорошей практикой, так как целевая страница будет автоматически загружать '/ index.php' – anubhava

+0

Некоторые вещи все еще не работают, если я перехожу в/p/adminpanel, он загружается, но/p/myaccount это не происходит, пока обе страницы существуют. Можете ли вы помочь мне через Skype? Или это не разрешено обсуждать с помощью Stackoverflow? – Tom

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