什么是在url字符串中删除.php后缀的最佳方法,这样它们看起来很漂亮?

时间:2010-06-17 13:31:09

标签: php cakephp

  

可能重复:
  Remove .php extension with PHP

什么是在url字符串中删除.php后缀以使它们看起来很漂亮的最佳方法?

提前谢谢你; - )

9 个答案:

答案 0 :(得分:1)

使用apache mod_rewrite(重写规则)

http://roshanbh.com.np/2008/02/hide-php-url-rewriting-htaccess.html

答案 1 :(得分:1)

确保您的apache安装已启用mod_rewrite(将在httpd.conf中,或其中一个链接的文件,启用mods等)和look into how routing works in cakePHP

一些提示 - 重写规则可以在.htaccess文件中找到(如果服务器发出500错误,请确保没有unicode BOM),如果确实发现需要那些$ _GET参数,[qsappend你的重写规则应该传递它们。如果你仍然得到500s,则可以在apache的错误日志中找到正则表达式的编译错误,这对于调试非常有用。

可能更容易先用mod_rewrite做一个简单的项目,以了解它是如何工作的,因为蛋糕中的重写和路由组合可以非常快速地复杂化。

答案 2 :(得分:0)

Options +MultiViews

在Apache配置中。

答案 3 :(得分:0)

这样做的最佳方式(至少对我而言)是:

  • 只使用一个文件即可接收所有请求。在大多数情况下,它将是index.php文件。
  • 然后,使用mod_rewrite这样的规则:

RewriteEngine On
RewriteBase /the_base_dir_of_your_app/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /the_base_dir_of_your_app/index.php [L]
  • 然后,您可以使用basename($_SERVER['REQUEST_URI']);等功能对网址进行分析,以确定要执行的操作。

答案 4 :(得分:0)

这是一个温和的introduction into mod_rewrite

答案 5 :(得分:0)

使用mod_rewrite - 或者开始使用ASP.NET MVC 2:)

答案 6 :(得分:0)

如果您使用像CakePHP(或任何其他)这样的框架,它将为您完成。免费。现在。

答案 7 :(得分:0)

htaccess的:


永久链接

上的RewriteEngine

删除www

RewriteCond%{HTTP_HOST} ^ www.yourdomain.com [NC]

RewriteRule(。*)http://yourdomain.com/ $ 1 [R = 301,L]

链接

RewriteRule ^ faq $ /faq.php [L]

RewriteRule ^ donations $ /donations.php [L]

RewriteRule ^联系$ /contact.php [L]

答案 8 :(得分:0)

  

所以他们看起来很漂亮?

美丽是旁观者的眼睛。这取决于你考虑'漂亮'。很多还取决于您希望摆脱多少使得工作系统成为可能的约定以及重新配置站点的约束。

虽然其他人提到过使用mod_rewrite,或URL解析或其他类似的方法,但我不是这些方法的粉丝 - 除了非常特定于运行代码的网络服务器类型之外,它们还打破了简单的1:1在URI中的路径和Web服务器文件系统上的路径之间进行映射。

你可以用你选择的扩展名替换'.php'......但这几乎不符合我对'漂亮'的解释。

我采取的方法是让每个脚本(或至少每个脚本都是作为生成网页的入口点)命名为index.php并存在于其自己唯一命名的目录中。这样做的主要原因与使URL看起来不错,而是使代码库更易于管理 - 我对包含文件的命名和放置也有严格的标准。

HTH

下进行。