htaccess remove.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

我正在使用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/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