是否可以使用.htaccess文件从我的所有 URL 中删除 .php 部分?
两个例子:
http://url.com/home.php
http://url.com/shops.php
变得:
http://url.com/home/
http://url.com/shops/
所有的帮助将不胜感激。
是否可以使用.htaccess文件从我的所有 URL 中删除 .php 部分?
两个例子:
http://url.com/home.php
http://url.com/shops.php
变得:
http://url.com/home/
http://url.com/shops/
所有的帮助将不胜感激。
这应该有效:
RewriteEngine On
RewriteRule \/([^\/]+)\/$ $1.php
它将为您提供以 url 的最后一段命名的文件:
http://example.com/shops/shopname1/ -> shopname1.php
http://example.com/shops/ -> 商店.php
要将/$var/重写为/$var.php,然后将/$var.php重定向到/$var/ ,只需在.htaccess文件中使用这些指令:
# once per htaccess file
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9-_]+)/? /$1.php
RewriteRule ^([a-z0-9-_]+).php$ /$1/ [R]
如果您还想将特定 URL /shops/shopName1/重写为特定 URL /shopName1.php,然后将/shopName1.php重定向到/shops/shopName1/,那么您应该使用下面的代码而不是上面的代码:
# once per htaccess file
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9-_]+)/?$ /$1.php
RewriteCond %{REQUEST_URI} !^/shopName1.php$
RewriteRule ^([a-z0-9-_]+).php$ /$1/ [R]
RewriteRule ^shops/shopName1/?$ /shopName1.php
RewriteRule ^shopName1.php$ /shops/shopName1/ [R]
但是请记住/shops/shopName1/上没有变量,如果需要,请尝试一下。
似乎有关于重定向的问题DirectoryIndex home.php
。但我认为,这是您想要的代码,但在这一次,我们排除了任何重定向:
DirectoryIndex /home.php
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/shopName1/?$
RewriteCond %{REQUEST_URI} !^/shopName2/?$
RewriteCond %{REQUEST_URI} !^/shopName3/?$
RewriteCond %{REQUEST_URI} !^/shopName4/?$
RewriteCond %{REQUEST_URI} !^/shopName5/?$
RewriteRule ^([a-zA-Z0-9-_]+)/?$ /$1.php
RewriteRule ^shops/shopName1/?$ /shopName1.php
RewriteRule ^shops/shopName2/?$ /shopName2.php
RewriteRule ^shops/shopName3/?$ /shopName3.php
RewriteRule ^shops/shopName4/?$ /shopName4.php
RewriteRule ^shops/shopName5/?$ /shopName5.php
只需使用您的逻辑添加更多条件和规则..
我建议停止对页面使用常规的 .php 文件,而不是使用框架或请求路由器,但是如果你真的想这样做,那么为了实现这一点,shops.php
你shops
需要创建一个 .htaccess 文件并添加跟随它:
RewriteRule (.*) $1.php [L]
这会将URL 栏上的所有内容重命名something.php
为。something
.htaccess
完整文件的示例是:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php [L]
RewriteRule ^/(home|shops) /$1.php
第二本手册
RewriteRule ^/shops/shopname1/ /whateveryouneed.php