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