php:Mod重写让我很难找到基地址.需要帮助


php:Mod rewrite giving me hard times finding base address.. need help

我是Mod_rewrite的新手,但问题是它破坏了我所有的ajax和php

我使用windows.location对象来获取javascript的当前位置,例如:

var str = location.pathname;
str=str.slice(0,str.lastIndexOf('/'));

自从我使用mod_rewrite后,这个问题就再也不起作用了。我的.htaccess

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^cars/([^/]+)/?$ profiles.php?carname=$1 [L]

有人能带我找到解决这个问题的方法吗?此外,我在装载所有imgs和css/.js时也面临同样的问题,但我听说我可以在.htaccess上写条件,只重定向.php!,

我需要一种方法为ajax调用找到基地址,另一种方法则为php找到基地址。

问题是,您将所有url重定向到一个php文件,它会破坏所有其他资产,包括css和js。

解决方案:

使用重写条件。这样,它只在文件或目录不存在的情况下重定向。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^cars/([^/]+)/?$ profiles.php?carname=$1 [L]

第一行是:如果文件不存在第二个是:如果目录不存在会有一个重定向。