php - 如何使用 php 控制 .htaccess 或如何在 .htaccess 文件中输入 php 代码

标签 php mysql apache .htaccess mod-rewrite

我不太擅长 .htaccess,所以我不知道它是如何工作的,我有一个网站,我的网站链接是这样的:mysite.com/pagee.php?menu_id=1我使用这个 .htaccess 代码:

<IfModule mod_rewrite.c>
RewriteEngine on

# 1-level
RewriteRule ^home/{0,1}$  pagee.php?menu_id=1 [QSA,L]


</IfModule>

它是这样工作的:mysite.com/home/

但我的问题是我有很多这样的页面:

mysite.com/pagee.php?menu_id=2, mysite.com/pagee.php?menu_id=3, mysite.com/pagee.php?menu_id=4, mysite.com/pagee.php?menu_id=5, mysite.com/pagee.php?menu_id=6,

我的 pagee.php 代码是:

    <?php
require_once('config2.php');

$menu_id = intval($_GET['menu_id']);

$query = "SELECT * FROM menu WHERE `menu_id`=$menu_id";
$result = mysql_query($query);


while($row = mysql_fetch_assoc($result))
{

    echo '<h1>'.$row['mname'].'</h1>';

}

?>

pagee.php 与 mysql 一起工作

那么如何让代码在 .htaccess 中像这样工作:

    <IfModule mod_rewrite.c>
RewriteEngine on

# 1-level
<?php

$query = "SELECT * FROM menu WHERE `menu_id`=$menu_id";
$result = mysql_query($query);


while($row = mysql_fetch_assoc($result))
{
    $menu_id=$row['menu_id'];
    $linkname=$row['linkname'];


    echo 'RewriteRule ^'.$linkname.'/{0,1}$  pagee.php?menu_id='$menu_id' [QSA,L]';

} ?>


</IfModule>

最佳答案

PHP 无法控制 .htaccess ok,但您也可以通过写入和重写 .htaccess 文件来控制它,我可以理解,但我认为这不能正常工作。但你也可以试试,

Made a function and inside that do this:

function edit_hta() {

    echo "<IfModule mod_rewrite.c> \r\n
\r\n RewriteEngine on \r\n";

    require('config2.php'); $getquery=mysql_query("SELECT * FROM menu ORDER BY menu_id DESC"); while($rows=mysql_fetch_assoc($getquery)){$menu_id=$rows['menu_id']; $linkname=$rows['linkname'];

echo "\r\n RewriteRule ^".$linkname."/{0,1}$  pagee.php?menu_id=".$menu_id. "[QSA,L] \r\n"; }

    echo "\r\n </IfModule>";

}

OK, then make form, textarea and submit button

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
      <label>
        <textarea name="edit_ht" cols="45" rows="5"><?php echo edit_hta(); ?></textarea>
      </label>
      <input name="submit" type="submit" value="Edit" />
    </form>

Than make php coding inside that page:

$submit = $_POST['submit'];

if ($submit) {

$edit_ht = file_put_contents('.htaccess', $_POST['edit_ht']);

}

我希望它能做得很好,所以最重要的是,如果你的 sql 数据库中有很多页面,首先你必须创建所有页面,而不是你在 from sheet 中看到的所有页面,所有链接都显示在 textarea 中像这样:

<IfModule mod_rewrite.c> 


 RewriteEngine on 

RewriteRule ^asasasa/{0,1}$  pagee.php?menu_id=10[QSA,L]

RewriteRule ^zxzxzx/{0,1}$  pagee.php?menu_id=9[QSA,L]

RewriteRule ^movie/{0,1}$  pagee.php?menu_id=8[QSA,L] 

 RewriteRule ^song/{0,1}$  pagee.php?menu_id=7[QSA,L] 

 RewriteRule ^software/{0,1}$  pagee.php?menu_id=6[QSA,L] 

 RewriteRule ^home/{0,1}$  pagee.php?menu_id=5[QSA,L]

 </IfModule>

然后您点击“编辑”按钮,您的 .htaccess 文件将被编辑,使用此方法您可以控制您的 .htaccess 文件。 我希望你能理解,如果你不理解,请给我评论。 谢谢。

关于php - 如何使用 php 控制 .htaccess 或如何在 .htaccess 文件中输入 php 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30532726/

相关文章:

java - android登录页面 "Unfortunately app is not respinding "错误

PHP:转义非字母数字字符

python - PyMySQL 访问被拒绝 "using password (no") 但使用密码

python - `Cannot open include file: ' apr_perms_set.h '` 执行 `pip install mod_wsgi` 时

php - 上传具有图像文件的表单而不刷新页面

php - 如何使用 PHP 制作 Canonicals

php - 无法为 Wordpress 插件创建 MYSQL 表

MySQL - 统计元素的销售次数 - 管理统计页面

apache - AJP 连接器不工作? (404 错误)

php - 如何在 php.ini 中启用 oci8 (Oracle) 扩展 - PHP 警告 : PHP Startup: in Unknown on line 0