**更新示例**
例如,假设我的网站网址为“http://www.mydomain.com”。
该网站使用$ _GET变量来确定页面,内容等。
所以,让我说我在http://www.mydomain.com/cms/index.php?p=about-us
这将是CMS中的关于我们的页面。
如果我在这里回复$ _SERVER ['SERVER_NAME'],我会收到“http://www.mydomain.com” 如果我回显$ _SEVER ['REQUEST_URI'],我会得到“cms / index.php?p = about-us”。
所以,使用下面的代码,“$ lastPage”给了我: “http://www.mydomain.com/cms/index.php?p=about-us”,这正是我想要的。
但是,只要我提交表单或更新内容等,我就会被重定向到css文件或图像路径。
当我在htaccess文件中有重写规则时,才会发生这种情况,为了获得格式良好的网址,我需要这样做。
原始问题
我在CMS上运行网站,在CMS中有一个“最后一页”变量。此变量的创建方式如下:
$lastPage="";
$lastPage .= $_SERVER["SERVER_NAME"];
$lastPage .= $_SERVER["REQUEST_URI"];
$_SESSION['theLastPage'] = $lastPage;
该变量用于在更新内容,提交表单等后将用户重定向到他们所在的最后一页。
它的用法如下:
<script>window.location="<?php echo $_SESSION['theLastPage']; ?>"</script>
这正是我想要的......
直到我在htaccess文件中添加此重写规则:
RewriteRule ^([^/]+)\.html$ index.php?p=$1 [L]
只要该行在我的htaccess文件中,重定向变量就会中断,并将用户定向到css文件或图像。重写规则可以正常工作,并且它是为了在整个网站中使用格式良好的URL。
过去几天我一直在努力解决这个问题,但没有成功。
如果有人能为我揭开这一点,那就太棒了。
谢谢!
HTACCESS FILE **
我无法完全解释这个问题,因为我不明白为什么会这样。
这是我当前的htaccess文件,这里有一些不同的重写规则,但第一个是导致问题的那个。
Options -Indexes
Options -MultiViews +FollowSymLinks
RewriteCond %{HTTP_HOST} !^www.yoursafetyexperts.com$
RewriteRule ^(.*)$ http://www.yoursafetyexperts.com/$1 [R=301]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/cms/
RewriteRule ^(.+) - [PT,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)\.html$ index.php?p=$1 [L] // If I remove this rule, my redirect works properly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/.]+)/([^/.]+)\.php$ index.php?p=$1&post_id=$2&post=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/.]+)/([^/.]+)/$ index.php?p=$1&catId=$2&catName=$3 [L]
</IfModule>