我正在尝试缩短我的网址,但遗憾的是找不到任何有用的内容。
我将我的代码分成文件夹。索引位于root,就像我的.htaccess一样。 文件夹的名称类似于文件扩展名,因此php,js,css [...]
我有以下链接:
localhost/php/getBets.php
并希望它是
localhost/getBets/
我已经有了最后剪切.php扩展名的部分,所以这是我的全部.htacces
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
# Hide Index
IndexIgnore *
# Forbid accessing certain sites
RedirectMatch 403 ^/.gitignore$
RedirectMatch 403 ^/.htaccess$
RewriteRule ^(?!index)(?!.*getBets).*\.(php|rb|py|txt|md|sql|inc)$ - [F,L,NC]
# Hide .php file ending in URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
有人可以告诉我如何实现这一目标吗? :) 非常感谢!
答案 0 :(得分:2)
对于您所需的网址,您可以在根目录中使用以下规则进行重写,
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/$ php/$1.php [L]
答案 1 :(得分:0)
Actualy Apache仍然没有pathinfo($,PATHINFO_DIRNAME),函数就像PHP一样。
使用%{REQUEST_URI},如下例所示:
RewriteRule ^(.+)/$ /path-dirname/$1 [R=301,L]
可能会重置:
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^.+/$ %1 [R=301,L]