htaccess remove.php文件扩展名
我正在使用htaccess,我正在尝试停止在地址栏中的文件上显示.php。我目前有以下代码:htaccess remove.php文件扩展名,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我正在使用htaccess,我正在尝试停止在地址栏中的文件上显示.php。我目前有以下代码: RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^([a-zA-Z0-9-]+)$ index.php?pagename=$1.php 而index.php include $_GET["pagename"]; 如果url是domain.com/customer/tic
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([a-zA-Z0-9-]+)$ index.php?pagename=$1.php
而index.php
include $_GET["pagename"];
如果url是domain.com/customer/tickets/openticket
它应该重写为domain.com/customer/tickets/openticket.php
我怎样才能使这只适用于
domain.com/customer和my.domain.com?首先,检查PHP扩展URL\u重写 当下面的代码在URL上找到openticket时,将其重写为openticket.php
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^openticket/?$ openticket.php [L,NC]
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . / [L,R=301]
</IfModule>
重新启动发动机
重写规则^openticket/?$openticket.php[L,NC]
RewriteCond%{REQUEST_FILENAME}-f
RewriteCond%{REQUEST_FILENAME}-d
重写规则[L,R=301]
url重写规则并不神奇。您不能只编写一个有1000页的系统,然后使用规则来做您想做的事情。您需要编写已经考虑到规则的系统。
在这种情况下,您可以做的是重写所有规则,即当您在url中找到特定名称时,将绘制特定文件。我并不特别了解它的魔力可能是这样的:
RewriteRule ^page1/?$ page1.php [L,NC]
RewriteRule ^page2/?$ page2.php [L,NC]
RewriteRule ^page3/?$ page3.php [L,NC]
RewriteRule ^page4/?$ page4.php [L,NC]
等等……如果任何其他用户知道它的神奇之处,请让我知道 更新: 也许你可以试试这样的(这只是一个想法/魔术):
尝试: 只有当php扩展位于“customer”文件夹中或主机为“my.domain.com”时,才会尝试添加php扩展。只需将最后一行替换为以下内容,即可完全绕过
index.php
文件:
RewriteRule ^(.*)$ /$1.php [L]
为了在有人放入类似http://domain.com/customer/tickets/openticket.php
在他们浏览器的地址栏中,您需要:
RewriteCond %{REQUEST_URI} ^/customer/ [OR]
RewriteCond %{HTTP_HOST} ^my\.domain\.com$ [NC]
RewriteCond %{THE_REQUEST} \ /+([^\?\ ]+)\.php
RewriteRule ^ /%1 [L,R=301]
尝试:
它不仅仅是openticket.php文件,它是customer/directory中的所有文件。当我转到domain.com/customer/tickets/openticket时,它会显示未找到的页面
RewriteRule ^(.*)$ /$1.php [L]
RewriteCond %{REQUEST_URI} ^/customer/ [OR]
RewriteCond %{HTTP_HOST} ^my\.domain\.com$ [NC]
RewriteCond %{THE_REQUEST} \ /+([^\?\ ]+)\.php
RewriteRule ^ /%1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteCond %{REQUEST_URI} !^(.*)/customer/(.*)
RewriteRule ^(.*)$ index.php?pagename=$1.php