Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
Wordpress自定义模块重写-totalnoob?_Wordpress_.htaccess_Mod Rewrite - Fatal编程技术网

Wordpress自定义模块重写-totalnoob?

Wordpress自定义模块重写-totalnoob?,wordpress,.htaccess,mod-rewrite,Wordpress,.htaccess,Mod Rewrite,我正在尝试为我的wordpress安装创建一个自定义mod_重写规则,我已经为我的页面结构创建了一个自定义规则,我想保留它 我想制定的新自定义规则是,只要有get变量,比如:www.mysite.com/?profile=username 我想让它看起来像:www.mysite.com/username 这是我当前的.htaccess文件: # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase

我正在尝试为我的wordpress安装创建一个自定义mod_重写规则,我已经为我的页面结构创建了一个自定义规则,我想保留它

我想制定的新自定义规则是,只要有get变量,比如:www.mysite.com/?profile=username

我想让它看起来像:www.mysite.com/username

这是我当前的.htaccess文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
我已经看过php.net和很多关于mod重写的教程,这些都是针对wordpress的,但我不明白。 如果有人能给我一些帮助,让我在这方面取得一些进展,我真的很感激,我真的很想让我的头左右修改

我假设我需要创建一个新的重写规则,但这就是我所能做到的

谢谢
弗兰克

至少可以说,完成你想完成的事情是困难的。它需要一个额外的PHP文件来解析传入的请求,因为.htaccess无法知道URL的用户名部分是否是用户名

我提到的PHP文件将从数据库加载users表,并将$\u GET['profile']与条目进行比较,匹配后,重写为/?profile=USERNAME

如果没有匹配项,它将直接传递到index.php

但是,这里有一个更简单的解决方案,它保留了许多您想要的:

RewriteRule ^profile/([^/]+)$ ?profile=$1 [L]
这样做的目的是将/profile/username重写为/?profile=username

这并不完全是您想要的,但它更容易实现。规则应该直接位于.htaccess文件中的
RewriteRule^index\.php$-[L]
下面


如果你有任何问题,我非常乐意解释这里发生的一切。

你的意思是说URL
mysite.com/username
mysite.com/?profile=username
在后端吗?是的,你说得对,我有点困惑,我正在慢慢地了解这一点,但这正是我想说的。我刚刚在更新行中输入了我的.htaccess,但当我尝试url时,它被404删除了。/profile/username to/?profile=username基本上就是我想要的。这可能是因为您没有正确处理?profile=$1。您将需要一个额外的文件,如我所述,并在Wordpress的index.php文件中进行一些测试。