首頁 >後端開發 >php教程 >关于伪静态的写法,请教高手帮忙

关于伪静态的写法,请教高手帮忙

WBOY
WBOY原創
2016-06-23 14:02:51983瀏覽

我使用apache作为服务器,安装wordpress,

现在写了一个自定义的链接

做出来是:http://127.0.0.1/wordpress/go/index.php?pid=399
但我想变为http://127.0.0.1/wordpress/go/399.html

听说要写伪静态,请高手帮忙哈


回复讨论(解决方案)

RewriteRule ^wordpress/go/([0-9]+)\.html$ wordpress/go/index.php?pid=$1 [L]

楼上的朋友,我设置了怎么不起作用哈?


# BEGIN WordPress

# Link Cloaker Plugin BEGIN

RewriteEngine On
RewriteRule ^goto/([^/]*)/([0-9]+)/([0-9]+)/?$ http://127.0.0.1/wordpress/wp-content/plugins/link-cloaking-plugin/wplc_redirector.php?post_id=$2&link_num=$3&cloaked_url=$0 [L]
RewriteRule ^goto/([^/]+)[/]?$ http://127.0.0.1/wordpress/wp-content/plugins/link-cloaking-plugin/wplc_redirector.php?name=$1&cloaked_url=$0 [L]

# Link Cloaker Plugin ENDS


RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
RewriteRule ^go/([0-9]+)\.html$ wordpress/go/index.php?pid=$ [L]


# END WordPress

我现在将网站放在根目录下
网址为:http://127.0.0.1/

安装好默认的wordpress的伪静态自动生成一个.htaccess文件

内容为

<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule>


现在我改为3楼说的:
<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule>RewriteEngine OnRewriteBase /RewriteRule ^go/([0-9]+)\.html$ go/index.php?pid=$1[L] 


怎么不生效哈

我要的效果是
http://127.0.0.1/go/index.php?pid=399 变成
http://127.0.0.1/go/399.html

不要做无谓的尝试!
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
将所有的访问都定向到了 index.php

这是他设计好的伪静态运行方式,不能改动
既然你要用 WordPress ,就得按他的规矩来

在网站根目录建立一个 .htaccess 的文件,内容为

RewriteEngine on# 修改以下语句中的 / 为网站目录地址,如果程序放在根目录?修改为 /RewriteBase /RewriteRule ^wordpress\/go\/([0-9]+)\.html$ wordpress/go/index.php?pid=$1 [NC]


试试看

那怎么办,我自己写了一个自定义的链接参数,难道这个就无法伪静态了吗?

在网站根目录建立一个 .htaccess 的文件,内容为
CSS code?1234567RewriteEngine on # 修改以下语句中的 / 为网站目录地址,如果程序放在根目录?修改为 /RewriteBase /  RewriteRule ^wordpress\/go\/([0-9]+)\.html$ wordpress/go/index.php?pid=$1……

我的站现在是
http://127.0.0.1/go/index.php?pid=399 变成
 http://127.0.0.1/go/399.html 

如何去掉wordpress?

在网站根目录建立一个 .htaccess 的文件,内容为
CSS code?1234567RewriteEngine on # 修改以下语句中的 / 为网站目录地址,如果程序放在根目录?修改为 /RewriteBase /  RewriteRule ^wordpress\/go\/([0-9]+)\.html$ wordpress/go/index.php?pid=$1……

尝试过了,不行,我的站没有wordpress目录了,我修改为
RewriteRule ^go\/([0-9]+)\.html$ go/index.php?pid=$1 [NC]

不行

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^go/([0-9]+)\.html$ index.php?pid=$1 [L] 


你要把 go/123.html 转到 index.php?pid=123是吧?试下这个

服务器要目录配置 rewrite

楼上的,根本一点作用没有,首先wordpress后台设置了固定链接,网站根目录自动产生一个.htaccess文件
内容为

# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /wordpress/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L]  </IfModule>      # END WordPress


这时候如果你把后台固定链接取消,即使有.htaccess文件也不生效。

我就是在开启固定链接以后,在.htaccess文件中添加你的代码,然后依然无效,无语了,我的主机已经开启rewrite

为什么wordpress的.htaccess文件里面修改任何都无效啊?急死我了

你确定你的空间开启了.htaccess么!?

空间开启了?

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn