Php 访问短url而不是长url
我将php文件存储在源目录中,因此当我想要访问它们时,我必须键入完整的url路径 如何在不从源目录移动文件的情况下将url转换为Php 访问短url而不是长url,php,.htaccess,url,Php,.htaccess,Url,我将php文件存储在源目录中,因此当我想要访问它们时,我必须键入完整的url路径 如何在不从源目录移动文件的情况下将url转换为 因此,我可以访问www.example.com/login,其中login.php文件仍将位于源文件夹(source/login.php)。我认为.htaccess的此实现将满足您的要求: Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On ## hide .php e
因此,我可以访问www.example.com/login,其中login.php文件仍将位于源文件夹(source/login.php)。我认为
.htaccess
的此实现将满足您的要求:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
## hide .php extension
# To externally redirect /foo/bar.php to /foo/bar
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R=302,L]
# To internally forward /foo/bar to /foo/bar.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ source/$1.php [L]
第一个块打开mod_rewrite
引擎以开始重写过程
第二个块告诉浏览器执行HTTP重定向,状态为302,这意味着以我们返回的方式重复请求,在本例中为/foo/bar
,不带扩展名
第三个块告诉服务器接受找不到的请求,例如没有扩展名的文件,如foo/bar
,并在内部将请求重定向到添加了.php
扩展名的同一目录
编辑:
我错过了原始答案中最后的重写要求。感谢您指出修复方法。您必须使用htaccess规则。“缩短”url的过程称为“url重写”。复制以下代码并将其粘贴到本地主机的根文件夹中,文件名为“.htaccess” 上面的代码基本上将url重写为您指定的url。它适用于同一模式中的所有URL 此外,你可能想看看这篇博文,了解更多信息,并面对常见的困境
Happy Hack它不起作用,它给了我500个错误。我用这个代码修复了它
Options -Multiviews
RewriteEngine On
RewriteBase /
RewriteRule ^([a-z]+)$ source/$1.php [L]
最后的规则应该是
RewriteRule^(.*?/?source/$1.php
,以满足OP的要求。@JoshJ感谢您的更新。我错过了最后一部分。编辑了答案并将修复归功于您。最终规则应为RewriteRule^(.*?/?$source/$1.php
,以满足OP的要求。
Options -Multiviews
RewriteEngine On
RewriteBase /
RewriteRule ^([a-z]+)$ source/$1.php [L]