我正在尝试为我正在处理的网站项目设计文件夹结构。如今很多网站似乎都有以下链接结构:
www.example.com/news/news-item-one/ www.example.com/about-us /
我可以让我的网站像这样工作而不为每个页面创建一个新文件夹并在其中放入一个index.php文件吗?
www.example.com/news/new-item-one.php阅读www.example.com/news/news-item-one /
答案 0 :(得分:2)
您可以使用CodeIgniter或CakePHP等Web应用程序框架为您执行URI路由:
这是通过.htaccess文件完成的,其中任何一个框架都可以在示例文档中提供,并且它们具有关于URI路由的大量文档。例如关于CI:
答案 1 :(得分:1)
是的,但这取决于您正在运行的服务器。
如果是Apache,最常见的方法之一是创建.htaccess文件并使用重写规则来声明网站使用的不同路由。
下面是一个非常简单的例子,虽然不一定是最好的方法。你可以采取一些措施使其更加灵活,但我认为这超出了这个问题的范围。对于它的价值,我更喜欢将路由处理传递给我的框架的全能路径。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^news/(.*)$ news.php?item=$1 [NC,L,QSA]
RewriteRule ^about-us/$ about-us.php [NC,L,QSA]
</IfModule>
答案 2 :(得分:0)
你想使用htaccess。
使用以下
在根目录中创建名为.htaccess的文件Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)$ $1.php [NC]
答案 3 :(得分:0)
您不需要使用框架(尽管这可能是一个好主意)。您只需正确设置.htacess即可:
答案 4 :(得分:0)
以下mod_rewrite代码(放入您的Apache配置)将允许您隐藏您网站上任何页面的.php扩展名。
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !\.php$
RewriteRule ^(.*)$ $1.php [L]
它会检查以确定某些内容不是文件或目录本身,然后在其名称之后添加.php实际上是一个文件,而是为它提供服务。
因此,如果您的网站上有/ page.php,则转到/ page将与转到/page.php相同。