【问题标题】:PHP htaccess rewrite rules with wordpressPHP htaccess 用 wordpress 重写规则
【发布时间】:2014-04-30 15:06:34
【问题描述】:

我有一个正在运行的服务,可以让我的用户选择他们自己的 URL 地址(例如:http://hsdfhdfghfh.com/theUserURL

现在我将把我的前端网站放在 wordpress 上,但让我的应用程序与它一起运行。

现在解决这个问题,我在 htaccess 中设置了一个规则来将我的用户 url 转发到他们的页面,但是 wordpress 也需要相同的规则来制作漂亮的 URL(永久链接)。

这是我的 htaccess 以及我的代码和 wordpress 注入的代码。目前只有我的重定向工作,我怎样才能让他们一起工作? 我可以在我的 php 文件中添加一个获取 URL 的代码,如果它没有条目,我可以将它扔到 wordpress 中显示吗?

这是我的 htaccess:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^(.*)$ ./url.php?w=$1

AddDefaultCharset UTF-8

# 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

这是我处理重定向的 php (url.php) 文件:

<?php

session_start();

$url_name = $_GET['w'];


include ('init.php');

$result = mysql_query("SELECT * FROM urls WHERE url='$url_name'");  
$num_rows = mysql_num_rows($result);
$query_result = mysql_fetch_assoc($result);

if($num_rows == 0){

    include($theurl.'/404.php');
    exit();
}


$_SESSION['url_id'] = $query_result['url_id'];

?>

..Shows the rest of the page for the user with the specified url_id session...

也许我可以以某种方式将输入的 URL 传输到 wordpress,而不是显示 404.php 页面?

干杯!

【问题讨论】:

  • 嘿 Prix,用户正在我的应用程序 domain.com/UserURL 中设置 URL。有没有办法将输入的 URL 从 wordpress 之外的 php 文件传输到 wordpress?
  • 正如我在顶部所写的,我有 2 个网站在同一个页面上协同工作,Wordpress 和我的网络应用程序。 Wordpress 用于销售网站,另一个是应用程序本身。用户的 URL 由我的 Webapp 处理。我通过用以下内容替换 404.php 包含解决了这个问题: include($theurl.'/index.php');如果我在我的数据库中找不到 URL,Wordpress 会处理重定向。有人发现这种方法有问题吗?
  • 很高兴您找到了解决方案,但看看您的.htaccess,您肯定会遇到问题,GL。基本上RewriteRule . /index.php [L] 是一个包罗万象的,RewriteRule ^(.*)$ ./url.php?w=$1 也是一个包罗万象的,它们都具有相同的条件,除非它们位于不同的文档根目录中,否则会从另一个文件根目录中窃取并可能导致失败。
  • 所以现在如果我只在重定向中包含 wordpress 的索引文件,我可以在 htaccess 中放松 wordpress 规则吗?
  • 就像我说的,我不知道你的应用程序是如何工作的,你也没有提供任何显示它的细节,所以我可以说它的行为方式。您所展示的只是一个 URL,没有真实示例说明您的应用程序如何与您的博客目前的工作方式相比较,也没有在不同的根文件夹上有不同的域或子域。

标签: php wordpress apache .htaccess mod-rewrite


【解决方案1】:

在尝试了不同的方法并尝试使用 .htaccess 进行操作后,我意识到这个过程对于加载时间和服务器过载非常不利。

我最终将 Laravel 移至子域:/

不要试图将 Wordpress 和 Laravel 放在同一个域上,除非你真的想将 wordpress 调整到核心。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 2017-08-16
    相关资源
    最近更新 更多