如何在php / apache配置中获取域名后面的URL参数?

Eg, for a website I have, website.com/abcd, I need to extract the 'abcd' variable and store in a database. If a user visits website.com/abcd it redirects to a 404 page. I have been tinkering with .htaccess but not getting anywhere.

Pop the below into a .htaccess file...

<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymlinks
Options -Indexes

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /
RewriteRule . /index.php [L]
</IfModule>

... then use <?php print_r($_SERVER);?> to show variables that your server will let you use.

The above htaccess code is pretty basic; if the file/directory that's being requested doesn't physically exist, requests will be redirected to ./index.php.

Add a custom error-handler instead of the builtin to your .htaccess:

ErrorDocument 404 /handle_404.php

In the handle_404.php you can do access all information you need:

<?php
header("HTTP/1.0 404 Not Found");
echo "The url you requested (${_SERVER['REQUEST_URI']}), does not exist.";
// do whatever else you want (e.g. persist to DB)