2017-02-14 2 views
1

У меня включен Htaccess, и ниже, что я написал до сих пор в.Rewrite страницы с использованием Htaccess

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 

Я хотел бы применить чистый URL для своих страниц , например, я хотел бы

terms.php to be rewritten as /terms-and-conditions 
privacy.php /privacy 
thanks.php/thank-you 

ответ

1

Это probbly то, что вы ищете, хотя вы, возможно, придется настроить его для использования:

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/?([^/]+)$ $1.php [L] 

Это второе правило может быть использовано без изменений в конфигурации хоста настоящих http-серверов или в файлах динамической конфигурации (файлы стиля).

Очевидно, что модуль перезаписи должен быть включен.


В последнем примере вы даете, thanks.php/thank-you может не быть реализована таким образом, так как «благодарственные» не равно «спасибо», но я предполагаю, что это опечатка. Если вам действительно нужно, что отображение, то вы должны выполнить специальное правило только для этого одного URI помещен перед тем, что последнее правило выше:

RewriteRule ^/?thank-you$ thanks.php [L] 

И общий совет: вы должны всегда предпочитают места такие правила внутри конфигурации хоста http-серверов вместо использования динамических файлов конфигурации («.htaccess»). Эти файлы, как известно, подвержены ошибкам, трудно отлаживаются, и они действительно замедляют работу сервера. Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет контроля над конфигурацией хоста (читай: действительно дешевые хостинг-провайдеры) или если у вас есть приложение, которое опирается на составление собственных правил перезаписи (что является очевидным кошмаром безопасности).

2

Вы можете попробовать следующее:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^terms-and-conditions terms.php 
RewriteRule ^privacy privacy.php 
RewriteRule ^thank-you thanks.php 
+0

Спасибо. Как я могу сделать это в обратном порядке, например, при вводе /privacy.php переписывается как/privacy. – John