2016-12-31 7 views
-3

У меня есть динамические страницы в PHP, как:перезаписи URL в PHP с несколькими строки запроса переменных с использованием .htacces

http://www.example.com/page.php?tokenid=1&tokenname=About Us 

Я хочу, чтобы удалить эту часть: расширение

.php?tokenid=1&tokenname=About Us 

страницы со строкой запроса и показать URL как:

http://www.example.com/About Us 

Update:

То, что я пытался до сих пор:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteBase/

    RewriteCond %{REQUEST_FILENAME}.php -f 
    #RewriteRule ^([a-zA-Z0-9\._-]*)?/(.*)$ $1.php [QSA,E=PATH_INFO:/$2,L] 
    RewriteRule ^([a-zA-Z0-9\._-]*)?/(.*)$ $1.php/$2 [QSA,E=PATH_INFO:/$2,L] 
    RewriteCond %{REQUEST_FILENAME}.php -f 
    RewriteRule ^(.*)$ $1.php [QSA,L] 

    # Fix PHP Authentication with FastCGI mode 
    RewriteCond %{HTTP:Authorization} !'' 
    RewriteRule .*php - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 
</IfModule> 
+0

Вы пробовали что-нибудь? – EhsanT

+0

@ EhsanT да, я пробовал много вещей из Google, но acutaully не смог найти подходящее решение. –

+0

Итак, если вы что-то пробовали, когда вы отправляете свой вопрос, укажите свой код (что бы вы ни попробовали) – EhsanT

ответ

2

Попробуйте это в вашем файле .htaccess:

RewriteEngine on 
RewriteBase/

# Skip actual files/directories 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# If the host matches example.com 
RewriteCond %{HTTP_HOST} ^www\.example\.com$ 
# And the request URI starts with page.php 
RewriteCond %{REQUEST_URI} ^\/page\.php 
# And the querystring matches tokenid=DIGIT&tokenname=TOKEN_NAME 
RewriteCond %{QUERY_STRING} tokenid=\d&tokenname=(.*) 
# Then rewrite the URI to TOKEN_NAME 
RewriteRule ^(.*)$ %1? [L,R] 

Вы можете try it online, если вы хотите.

enter image description here

+0

Я попробовал ваше предложение, но я получаю сообщение об ошибке 404, я не могу извлечь содержимое страницы. –

+0

Что касается модуля перезаписи apache, вы правильно перенаправляетесь на страницу '/ About Us'. Вы должны убедиться, что URI существует. Добавление правила перезаписи не позволяет магически сделать эту страницу доступной. – sepehr

+0

да, но я получаю страницу из базы данных на основе токена и tokenname, и я переписываю URL-адрес, чтобы пользователь не видел дополнительную строку запроса. –