Apache htaccess友好的url地狱
我做这件事已经有一段时间了,但它让我喝多了。所以我在找一个比我聪明的人 我有一个这样的测试站点:Apache htaccess友好的url地狱,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,我做这件事已经有一段时间了,但它让我喝多了。所以我在找一个比我聪明的人 我有一个这样的测试站点: www.domain.com/directory/index.php 但我想使用友好的url。所以我希望这些都直接转到index.php: www.domain.com/directory/ www.domain.com/directory/index.php www.domain.com/directory/index.php/arg1/arg2/arg3/arg4 www.domai
www.domain.com/directory/index.php
但我想使用友好的url。所以我希望这些都直接转到index.php:
www.domain.com/directory/
www.domain.com/directory/index.php
www.domain.com/directory/index.php/arg1/arg2/arg3/arg4
www.domain.com/directory/calendar/arg1/arg2/arg3/arg4
www.domain.com/directory/anything-here
尝试将这些规则添加到
目录
文件夹中的htaccess文件中:
RewriteEngine On
RewriteBase /directory/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
如何路由取决于最后一行。如果希望将其作为参数传递:
RewriteRule ^(.*)$ index.php?request=$1 [L]
或者如果要使用$\u服务器['PATH\u INFO']
变量:
RewriteRule ^(.*)$ index.php/$1 [L]
我在丢失子目录中的css、图像和jquery等资产时遇到了一些问题,它们可以使用吗?老实说,我失败过很多次,这太可笑了。但我会试试看。@user2070436我猜这是因为你的页面内容中有相对的URL。尝试将此添加到您的页面标题中:
(或者无论基是什么,可能是
?)基标记是个好主意。它修复了这部分问题,但如果我尝试www.domain.org/directory/test
,就会得到一个服务器错误页面。我正在使用RewriteRule^(.*)$index.php/$1[L]
行。事实上,如果我也这样做www.domain.org/directory/index.php/test