访问短网址而不是长网址

时间:2015-11-20 19:53:53

标签: php .htaccess url

我将我的php文件存储在源目录中,所以当我想访问它们时,我必须输入完整的URL路径 http://example.com/source/login.php

如何在不移动源目录的文件的情况下将网址转换为 http://example.com/login

所以我可以访问www.example.com/login,其中login.php文件仍然位于源文件夹 (source / login.php)

3 个答案:

答案 0 :(得分:0)

我认为select to_char(to_date('092015','mmyyyy'),'mm/dd/yyyy') as dt from dual dt 1 09/01/2015 的这种实现会做你想做的事情:

.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] 引擎以开始重写过程。

第二个块告诉浏览器执行状态为302的HTTP重定向,这意味着以我们返回的方式重复请求,在这种情况下mod_rewrite没有扩展名。

第三个块告诉服务器接收无法找到的请求,例如没有/foo/bar扩展名的文件,并在内部将请求重定向到foo/bar扩展名的同一目录加入。

修改

我错过了原始答案中的最终重写要求。感谢@JoshJ指出修复。

答案 1 :(得分:0)

您必须使用htaccess规则。缩短"缩短"网址被称为" url重写"。复制以下代码并将其粘贴到localhost的根文件夹,文件名为" .htaccess"。

      Options +FollowSymLinks -MultiViews
      RewriteEngine On
      RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
      RewriteRule ^ %1 [R=302,L]
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME}.php -f
      RewriteRule ^(.*?)/?$ $1.php [L]
      RewriteRule ^(.*?)/?$ source/$1.php

上面的代码基本上将url重写为您指定的url。它适用于所有相同模式的网址。

此外,您可能希望查看此博客文章以获取更多信息并面对常见问题。

http://www.askapache.com/htaccess/modrewrite-tips-tricks.html

快乐的黑客攻击

答案 2 :(得分:0)

它没有工作它给我一个500错误。我使用此代码修复了它。

Options -Multiviews

RewriteEngine On
RewriteBase /

RewriteRule ^([a-z]+)$ source/$1.php [L]