Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php apache-将加载项域上的动态url重写为静态url不起作用_Php_Apache_.htaccess - Fatal编程技术网

Php apache-将加载项域上的动态url重写为静态url不起作用

Php apache-将加载项域上的动态url重写为静态url不起作用,php,apache,.htaccess,Php,Apache,.htaccess,我正在研究我的网站的搜索引擎优化,在阅读了一些关于搜索引擎优化友好的url的文章后,我发现了这些url,所以我决定将所有的动态url改为静态url。 例如:大多数URL类似于www.abc.com/final.php?id=1&name=name of file,但我想将URL更改为静态URL,如www.a.com/name of file/1 我试图编辑.htaccess文件,但它不工作 我的.htaccess文件 Options +FollowSymLinks RewriteEngine o

我正在研究我的网站的搜索引擎优化,在阅读了一些关于搜索引擎优化友好的url的文章后,我发现了这些url,所以我决定将所有的动态url改为静态url。 例如:大多数URL类似于
www.abc.com/final.php?id=1&name=name of file
,但我想将URL更改为静态URL,如
www.a.com/name of file/1

我试图编辑.htaccess文件,但它不工作

我的
.htaccess文件

Options +FollowSymLinks
RewriteEngine on
RewriteRule final/id/(.*)/name/(.*)/ final.php?id=$1&name=$2
像这样试试

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/([\d]+)$ final.php?id=$2&name=$1 [QSA,NC,L]
您可以使用:

Options +FollowSymLinks
RewriteEngine on

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+final\.php\?id=([^\s&]*)&name=([^\s&]*) [NC]
RewriteRule ^ /%2/%1/? [R=301,L,NE]

# internal forward from pretty URL to actual one
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/(\d+)/? final.php?id=$2&name=$1 [NC,L,QSA]

一般注意事项:如果可能,您应该始终希望将此类规则放置在http服务器主机配置中,而不是使用
.htaccess
样式的文件。这些文件是出了名的容易出错,难以调试,而且它们确实降低了http服务器的速度。它们仅作为无法访问主机配置的用户的最后一种方式提供(阅读:really cheap hosting providers)。错误是什么?请使用注释/删除其他冲突规则,然后重试。没有错误,但它不会将url更改为静态url。根据此规则,当您在内部调用
www.abc.com/name of file/1
时,它将重写为
www.abc.com/final.php?id=1&name=name of file
您确定要这样做吗。重定向和重写是不同的事情。哦,现在我明白了,我还想将
www.abc.com/final.php?id=1&name=name=name of file
重定向到
www.abc.com/id/1/name/name of file
实际上我假设重写和重定向是一样的,谢谢你纠正了我的错误,但我的css在那个页面上不起作用,我想这都是因为$\u获取变量使用css的绝对链接,或者添加html标题:
。因为您更改了URL和相对根目录。如何附加上一页URL,假设我在搜索页面上有url
www.abc.com/x/y/query='dfg'
的结果,当我点击任何一个结果时,它应该打开
www.abc.com/x/y/name of file/id num
,而不是
www.abc.com/name of file/id num
,我不理解这个问题。我对你原来问题的回答。对于另一个问题,添加一个新问题如果要更改HTML页面中的链接,则必须更改HTML或程序中的链接。