Php 使用.htaccess重写URL创建重复的mysql条目

Php 使用.htaccess重写URL创建重复的mysql条目,php,mysql,.htaccess,mod-rewrite,Php,Mysql,.htaccess,Mod Rewrite,如果使用.htaccess重写url,则使用php执行所有插入查询两次(不需要的重复) 我的.htaccess: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]

如果使用.htaccess重写url,则使用php执行所有插入查询两次(不需要的重复)

我的.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
<?php define('DB_LOGIN', 'mylogin');
define('DB_PASS', 'mypass');
define('DB_HOST', 'localhost');
define('DB_TYPE', 'mysql');
define('DB_NAME', 'dbname');

$mysql = MySQL_Connect(DB_HOST, DB_LOGIN, DB_PASS);
$mysql_db = MySQL_Select_DB(DB_NAME);

mysql_query("INSERT INTO `pages` (`title`, `slug`) VALUES ('TEST', 'test')"); ?>

重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
index.php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
<?php define('DB_LOGIN', 'mylogin');
define('DB_PASS', 'mypass');
define('DB_HOST', 'localhost');
define('DB_TYPE', 'mysql');
define('DB_NAME', 'dbname');

$mysql = MySQL_Connect(DB_HOST, DB_LOGIN, DB_PASS);
$mysql_db = MySQL_Select_DB(DB_NAME);

mysql_query("INSERT INTO `pages` (`title`, `slug`) VALUES ('TEST', 'test')"); ?>

默认情况下,浏览器会自动请求favicon.ico文件。
但您没有任何favicon.ico文件,所以它会被重写(htaccess中的规则)。
这就是为什么您有一个重复的execute

解决方案:

  • 添加favicon.ico文件
  • 如果请求的url是favicon,则不要插入(在index.php中)
  • 在htaccess中使用规则禁用它

  • 此外,您还可以在SQL表中设置主键或唯一键(例如,“title”)。仅此一项就可以防止任何重复条目。

    谢谢您的回复!我尝试了您的解决方案,但数据库中仍有2个条目。在sql查询中,我尝试放置
    $\u SERVER['REQUEST\u URI']
    ,因此在DB中我看到了这两个请求。如果执行(例如)mysite.com/dashboard,则从请求uri保存到数据库:
    /dashboard
    /favicon.ico
    。所以我试着把
    favicon.ico
    放到我的服务器上,一切都正常,即使没有你的解决方案(识别重写的url)。这可以吗,还是修复.htaccess中缺少的favicon更好?调试的反应很好:)我编辑了我的答案,用favicon解释了这个问题